Pristup redovima unutar metode, sugestija

Pristup redovima unutar metode, sugestija

offline
  • Pridružio: 18 Feb 2007
  • Poruke: 31
  • Gde živiš: Republika Srpska,Banja Luka

Interesantno na mom lokalnom serveru je sve radilo kako treba ,a metoda je izgledala ovako :
    public function anyi($x, $xx)   {        return  $this->result()[$x-1]->$xx;    }
Ali kad sam prebacio na udaljeni server izbacivalo mi je gresku ,bunio se php na ovu srednju zagradu '[' .Ocigledno da ga nije prepoznavao kao array().I onda ispravim i ovako radi.
    public function anyi($x, $xx)   {        $xxs = $this->result();        return $xxs[$x-1]->$xx;    }
######################
metoda result() izgleda ovako.Vraca veliki red koji je povukao fetch_object();
    public function result() {       return $this->_results; }
######################
Da li je ovo problem do verzije PHP-a ili u cemu je vec ,zna li neko ?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • C# and PHP Developer
  • Pridružio: 16 Feb 2011
  • Poruke: 1630
  • Gde živiš: Pancevo

Pa zato sto na tvom serveru je 100% php konfigurisan da neprikazuje sve greske ili mozda ti he show error 0, promeni to u php.ini ili direktno u script (E_ALL, E_STRICT)

Druga stvar odakle ti ideja da posle metoda dodajes zagrade za kljuc niza? nesto()[key] ??? Za ovih 10 god prvi put to videh...

Koristi get, set magicne metode ili svoje rucne.



offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3760
  • Gde živiš: 127.0.0.1

@_ivke: to je novo u PHP 5.4, zato ga nisi video u zadnjih 10 godina (Example #7 na man strani). I ovo je novo:

<?php $arr = ["ovo", "je", "niz"]; ?>

Umesto stare sintakse:

<?php $arr = array("ovo", "je", "niz"); ?>

Ono sto sam ja primetio je da se modifikuje sintaksa PHP-a da sto vise lici na JS sintaksu.

Mozes sve izmene za nizove da nadjes (a gde drugo) na man stranici.

@aljosa7: Odgovor je krajnje jednostavan - na lokalu imas PHP 5.4 ili 5.5, na serveru je u vr' glave 5.3. Sintaksa prvog koda iz tvog posta radi samo na 5.4 ili novijim.

offline
  • Pridružio: 18 Feb 2007
  • Poruke: 31
  • Gde živiš: Republika Srpska,Banja Luka

@_ivKe get, set magicne metode su puno sporije i preporucuje se njihovo izbjegavanje gdjegod.
@Rastafarii to sam i ja danas skontao da je njihov PHP stara verzija jer mi je iskocila jos jedna greska:
Can't use function return value in write context ,a onda sam malo proguglao pa nasao ovo:
Note: Prior to PHP 5.5, empty() only supports variables; anything else will result in a parse error. In other words, the following will not work: empty(trim($name)). Instead, use trim($name) == false
Sto dalje implicira da ne mozemo staviti npr.: empty($_SESSION['neka']) nego moramo prvo staviti tu sesiju u string pa onda u empty.

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3760
  • Gde živiš: 127.0.0.1

Ovo je sasvim legitimno i radi od kako postoje empty() i $_SESSION superglobal:

if (empty($_SESSION['neka'])

jer je $_SESSION promenljiva (variable), doduse super-global, ali i dalje promenljiva. Pre PHP-a 5.5 nisi mogao da u empty() direktno stavis metodu (a $_SESSION to nije) koja vraca nesto, nego prvo output metode u promenljivu, pa nju proveravas.

offline
  • Pridružio: 18 Feb 2007
  • Poruke: 31
  • Gde živiš: Republika Srpska,Banja Luka

Hvala @Rastafarii skontao sam stavljah metodu u empty Smile ,a ja sam kontao da je ovo problem ,dakle problem je u PHP prije verzije 5.5 ne moze metoda u empty Smile
   public static function exists($name) {       return (isset($_SESSION[$name])) ? true : false;    }
   public static function get($name) {       if(self::exists($name)) {          return  $_SESSION[$name];       }    }
Javljalo mi je tu gresku u ovoj zadnjoj metodi gdje je empty i tek kad sam u empty stavio ovaj string $names proradilo mi je,hm?
   public static function flash($name, $string = '') {    $names = self::get($name);       if(self::exists($name) && !empty($names)) { //radi !!!          $success = self::get($name);          self::delete($name); //vraca prazno          return $success;       } elseif(!self::exists($name)) {          self::put($name, $string); //^^ logicka zamka..durgi krug stvara ""       } elseif(self::exists($name) && empty($names)) {          self::delete($name);          self::put($name, $string);       }       return '';    }

Ko je trenutno na forumu
 

Ukupno su 1087 korisnika na forumu :: 42 registrovanih, 7 sakrivenih i 1038 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: arsa, Arsenije, asdfjklc, Avalon015, avijacija, bankulen, Bickoooo, Bubimir, dijica, djboj, drimer, GandorCC, Goran 0000, HogarStrashni, hyla, koom0001, ladro, Mendonca, mercedesamg, Metanoja, milenko crazy north, Milija.00, Milos1389, mnn2, moldway, Motocar, nebojsag, nemkea71, nenad81, opt1, Oscar, proka89, S2M, Sirius, Srle993, Vatreni Zmaj, vladaa012, vladetije, voja64, yufighter, zdrebac, Zoca