PHP: Błąd "Strict Standards: Redefining already defined constructor for class".
Podczas pisania pracy inżynierskiej natknąłem się na kilka ciekawych miejsc w kodzie, “produkujących” nieznane mi do tej pory błędy. Być może miałem świadomość ich istnienia, ale nie udało mi się jeszcze ich “popełnić”. W dzisiejszym wpisie chciałbym przedstawić Wam kolejny problem, tym razem dotyczący pewnych starszych mechanizmów języka PHP. Zapraszam do lektury. Wstęp: “obiektowość” PHP4. Zarówno wpis z wtorku, traktujący problemach związanych głównie z zagapieniem się programisty, jak i dzisiejszy wyjaśniający nieco dziwne podejście PHP do wprowadzonego przez niego w wersji piątej modelu obiektowości to konsekwencja całkiem sporej bazy kodu, jaki powstał podczas implementacji mojego frameworka.
PHP: Deklaracja sygnatury konstruktora klasy w interfejsie.

Konstruktor klasy jest specjalną funkcją uruchamianą automatycznie podczas tworzenia nowej instancji klasy, jednokrotnie w trakcie życia danego obiektu (oczywiście możemy potem w jawny sposób wywołać go w kodzie, jednakże nie jest to polecana praktyka programistyczna). W języku PHP to stwierdzenie także jest prawdziwe, aczkolwiek w wielu miejscach interpreter udowadnia nam, że z powodzeniem możemy potraktować konstruktor jak zwykłą funkcję.

Wstęp: Implementujemy interfejs w klasie.

Żeby nie być gołosłownym, weźmy pod uwagę przykładowy interfejs i implementującą go klasę: