|
PHP PHP aplikacije, Smarty, PEAR |
|
Alati teme | Način prikaza |
22. 08. 2005. | #1 |
Dejan Katašić
Wrote a book
Datum učlanjenja: 10.06.2005
Lokacija: Novi Sad
Poruke: 1.017
Hvala: 129
86 "Hvala" u 43 poruka
|
Notice: Only variables should be assigned by reference
Ovo je nešto specifično za PHP 4.4.0. Nisam uspeo nešto više da nađem o temi jer je google indeksirao ispise greške na gomili sajtova.
Interesuje me da li može da ubije neki deo koda da se ne izvrši kako treba? Ispis greške mogu da izbegnem ako umesto... PHP kôd:
PHP kôd:
Da li je dovoljno da isključim E_NOTICE iz error_reportinga (da ne moram da trčim kroz hiljade linija koda)? |
22. 08. 2005. | #2 | ||
Super Moderator
Invented the damn thing
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
|
http://www.php.net/manual/en/languag...ces.return.php
Citat:
Isto tako: Citat:
|
||
22. 08. 2005. | #3 | |
Dejan Katašić
Wrote a book
Datum učlanjenja: 10.06.2005
Lokacija: Novi Sad
Poruke: 1.017
Hvala: 129
86 "Hvala" u 43 poruka
|
Konkretno sam menjao na jednom mestu gde je originalno bio sledeći kod
PHP kôd:
Kao što sam pomenuo, izgleda da je u pitanju nešto što se odnosi isključivo na verziju 4.4.0, a to je sada masovna poruka, evo google: http://www.google.com/search?q=%22On...y+reference%22 Jedva sam uspeo da iskopam nešto o tome, ovde: http://www.pmachine.com/forums/viewthread/25062/ Citat:
|
|
22. 08. 2005. | #4 |
Direktor Kombinata
Invented the damn thing
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
|
Imao sam isti problem, a rešio sam ga tako što sam instalirao PHP 4.3.11 i PHP 5.0.4 umesto stabilnih 4.4 i 5.1. Sad više nemam tih problema jer sam prešao na PHP5 gde & jednostavno više ne koristiš (osim u slučajevima foreacha gde želiš reference, a ne koristiš iteratore).
Koliko je meni poznato, postoji config opcija kojom se ovaj notice isključuje, ali se ne sećam imena. Ono što sigurno možeš da uradiš (ali nije neko rešenje) je: Kôd:
error_reporting(0); // tvoj kod error_reporting(E_ALL);
__________________
activeCollab - Project Management and Collaboration Tool iz domaće kuhinje | area51.rs - Blog |
22. 08. 2005. | #5 |
Dejan Katašić
Wrote a book
Datum učlanjenja: 10.06.2005
Lokacija: Novi Sad
Poruke: 1.017
Hvala: 129
86 "Hvala" u 43 poruka
|
error_reporting (E_ALL ^ E_NOTICE);
Interesuje me samo da li je to dovoljno, da li se možda neki deo koda neće dobro izvršiti. Evo kako ja to vidim, ali nisam siguran da je to baš ovako: - to je Notice, primedba, koja kaže da bi nešto trebalo da se radi na drugi način, koliko razumem radi se o stvari koju PHP rešava i ispravlja usput tako da ne dolazi do brljotine, za razliku od Warnig poruke koja ukazuje na verovatnu grešku (npr. referenciranje nepostojećeg indeksa niza). |
22. 08. 2005. | #6 |
Super Moderator
Invented the damn thing
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
|
Ja sam uvek za to da se prilikom razvoja drzi ukljucen i E_NOTICE level. Dakle error_reporting = E_ALL.
E, sad sto se tvog problema tice, molim te pastuje mi definiciju funkcije xml_parser_create i return k-du u istoj. |
22. 08. 2005. | #7 |
Dejan Katašić
Wrote a book
Datum učlanjenja: 10.06.2005
Lokacija: Novi Sad
Poruke: 1.017
Hvala: 129
86 "Hvala" u 43 poruka
|
To je PHP funkcija: www.php.net/xml_parser_create
Gledam sada ostale slučajeve dodele referencom... Naravno tu su varijable $nextNode =& $currNode->nextSibling; Pozivi funkcija, npr $newxmldoc =& unserialize($fileContents); Pozivi konstruktora, npr $this->connection =& new php_http_connection($host, $path, $port, $timeout); Potom pozive statičkih metoda, npr $fileContents =& php_file_utilities::getDataFromFile($name, 'r'); I metoda $childTextNode =& $this->ownerDocument->createTextNode($data); ... Uglavnom, toga ima dosta, a dok ovako gledam ne deluje mi pametno da redom krenem s uklanjanjem referentne dodele jer, npr, metod može da vrati neki svoj objekat i tada nije svejedno da li se dodeljuje sam objekat ili njegova kopija. I da ne bude zabune, sav ovaj kod nije moj niti sam ga nasledio, već sam samo krenuo da konfigurišem gotov CMS i pritom naleteo na ovakve poruke. Konačno, ostaju mi 3 puta: isključivanje Notice obaveštenja, instalacija starije verzije PHP i izmena koda. Ovo treće mi deluje riskantno jer još nisam dovoljno upoznat sa sistemom da bih znao šta se sve menja brisanjem jednog karaktera. Interesuje me kako se PHP ponaša kada uoči takvo nešto, da li ipak izvršava kako je navedeno u kodu uz malo gunđanja ili radi kako smatra da bi trebalo. Izuzev samih poruka zasad nisam primetio neke probleme u funkcionalnosti aplikacije. Ako ipak dodeli kako je navedeno, čini mi se da je dovoljno isključivanje obaveštavanja. |
22. 08. 2005. | #8 |
Super Moderator
Invented the damn thing
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
|
Verovatno se sam php buni jer se svejedno vraca referenca pa nema potrebe koristiti & fun_name vec je dovoljno fun_name prilikom poziva. To je uvedeno koliko vidim u php 4.4.0 i php 5.1.0
Umesto da prepravljas tudj kod, ja ti u ovom slucaju koji si naveo savetujem da iskljucis E_NOTICE nivo. Ne brini, to ce samo iskljuciti "gundjanje" kako ti kazes, nista se lose nece desiti. |
23. 08. 2005. | #9 | |
Dejan Katašić
Wrote a book
Datum učlanjenja: 10.06.2005
Lokacija: Novi Sad
Poruke: 1.017
Hvala: 129
86 "Hvala" u 43 poruka
|
Tačno. Skoknuo sam do foruma (to je Mambo, da ne budem misteriozan) i našao neke teme u kojima se spominje ovaj problem. Ovo dalje može da vodi do sledeće poruke...
Citat:
I tamo sam našao preporuke da se briše &, ali toga ima dosta, a kako mi predstoji još instalacija komponenti i modula... puno muke. Tako da ću za početak isključiti E_NOTICE, a ako se pojave dodatni problemi, idem na stariju verziju jezika. |
|
23. 08. 2005. | #10 |
Direktor Kombinata
Invented the damn thing
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
|
Ukloni & ako znaš da će se skripta vrteti na PHP5 ili na PHP4.4 i novijim
U suprotnom samo isključi notice na problematičnom mestu... Ništa gore nego kad razbiju kompatibilnost sa starim verzijama na takav način
__________________
activeCollab - Project Management and Collaboration Tool iz domaće kuhinje | area51.rs - Blog |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Da li navoditi reference listu ? | mangia | Opušteno | 6 | 27. 07. 2010. 18:17 |
Confidentiality/Legal Notice u potpisu emaila | mungos | e-Business | 10 | 15. 07. 2007. 11:10 |
Important Legal Notice Regarding Your Google AdWords Account? | [nq] | Opušteno | 6 | 22. 05. 2006. 18:33 |