A szigorú szabványok csak változókat kell átadni a javításhoz

Hasonló hiba lépett fel a PHP 5.3 verziójára való váltáskor, amely egy állandóparaméterrel rendelkező függvényhívást tilt, ha a függvény egy adott változónál hivatkozik erre a helyre.







Egyszerű példát fogok adni. Például létezik olyan függvényünk, amely a $ b változóra való utalást vár:

Ha ezt a függvényt nevezzük, a második paraméter fix értékét (állandó) helyettesíti, akkor a hiba a következő: Strict Standards: Csak változókat kell átadni a ...:

Ennek a hibának a kiküszöbölése érdekében a program logikájának módosítása nélkül az 5. paramétert egy olyan változóval kell helyettesíteni, amely egyenlő ezzel az értékkel:







Ebben az esetben minden helyes - a függvény hivatkozni fog a változóra, és nem lép fel a szabványok megsértése.

Ennek a hibának egy másik gyakori oka az, hogy átvitelük olyan függvények bemenetére, amelyek mutatót igényelnek egy változóhoz, más funkció végrehajtásához. Íme egy példa:

Ebben az esetben látjuk, hogy a függvény explode () függvényének eredményét közvetlenül a vég () függvény paramétereként adja át. De a végén () egy mutatóval dolgozik egy tömbhöz, nem tömbértékhez. Ezért hiba is lesz.

A megoldás ugyanaz, mint az előző példában:

Ez azt jelenti, hogy először átadjuk az értéket egy valós változónak, és csak akkor adjuk át a mutatót ennek a változónak a végéig ().

Valójában minden ilyen hiba megoldódott ilyen módon. Ha a program valahol elkezdett repülni a fenti hibánál, akkor csak egy ideiglenes változót hozzon létre, ahol az állandó hibásan halad.




Kapcsolódó cikkek