Zdałem sobie sprawę, że chociaż większość moich doświadczeń polega na pisaniu aplikacji PHP, od czasu do czasu popełniam "błędy początkowe". To dlatego, że PHP jest językiem, który wyrósł bardzo organicznie i jako taki ma pewne dziwactwa, dziwactwa i pułapki, o których nie wiem.Zakłócenia i pułapki w PHP
Chciałbym, aby to pytanie było wiki dla wszystkich, którzy chcą poznać pułapki PHP i wyjątki od tego, w co moglibyśmy wierzyć, są zasady. Ale proszę, nie pisz ogólne reakcje, takie jak:
Niektóre funkcje odbierać argumenty jak
$needle
,$haystack
, a niektóre jak$haystack
,$needle
.
Poinformuj o nazwach funkcji. Masz kilka odpowiedzi ode mnie jako przykłady. Aha, i dodaj jedną pułapkę na odpowiedź. W ten sposób zobaczymy, który z nich jest najbardziej pogardzany (przez głosowanie).
Nie chcę rozpoczynać wojny płomieniowej, zatrzymaj ją na temat. Jeśli chcesz napisać kilka złych rzeczy na temat PHP, zrób to jako komentarz do odpowiedniej odpowiedzi.
Mam nadzieję, że to wiki będzie pomocne dla nas wszystkich, początkujących i ekspertów.
Aktualizacja:
Po komentarzu Andrew Moore'a myślę, że odpowiedź powinna również zawierać roztwór lub obejście pitfall.
Od PHP 5.3.3 nie można już używać nazwy klasy jako nazwy konstruktora, jeśli używasz przestrzeni nazw. Musisz użyć "__construct". Żadne ostrzeżenia nie zostaną wydane, ale wywołanie "nowej MyClass" nie spowoduje wykonania kodu w twoim konstruktorze. Hurray za niezłą pułapkę. – nus