Poslao: 01 Apr 2015 12:55
|
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.
|
|
Poslao: 02 Apr 2015 13:51
|
offline
- 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.
|
|
|
|
Poslao: 02 Apr 2015 14:12
|
offline
- Rastafarii
- Moderator foruma
- 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.
|
|
|
|
Poslao: 02 Apr 2015 16:48
|
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.
|
|
|
|
Poslao: 02 Apr 2015 17:11
|
offline
- Rastafarii
- Moderator foruma
- 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.
|
|
|
|
Poslao: 02 Apr 2015 17:15
|
offline
- Pridružio: 18 Feb 2007
- Poruke: 31
- Gde živiš: Republika Srpska,Banja Luka
|
Hvala @Rastafarii skontao sam stavljah metodu u empty ,a ja sam kontao da je ovo problem ,dakle problem je u PHP prije verzije 5.5 ne moze metoda u empty
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 '';
}
|
|
|
|