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 1088 korisnika na forumu :: 26 registrovanih, 5 sakrivenih i 1057 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: 357magnum, _Rade, Ben Roj, BlekMen, bokisha253, Dimitrije Paunovic, Dogma21, Dorcolac, draganl, Georgius, Kubovac, KUZMAR, ladro, Libertas, LUDI, Milan A. Nikolic, Milometer, milutin134, MiroslavD, mkukoleca, mnn2, RED4G-304, Snorks, styg, wizzardone, 2001