PHP zajmuję się od kilku dni i niestety w tym czasie natrafiłem na bardzo denerwujący mnie problem. Pomimo włączonego error_reportingu
odnoszę nieodparte wrażenie, że nie o wszystkich błędach z którymi mam do czynienia jestem odpowiednio informowany.
Chociażby w tym wypadku:
<?php require('error.php'); class Strona{ private $a; private $width; public function setA($dane){ $this->a = $dane; } public function getA(){ return $this->a; } public function menu(){ foreach($this->a as $k => $v){ } } /*public function test(){ echo "test NIEprzeciazony"; } public function test($dane){ echo "test PRZECIAZONY"; } */ } $b = new Strona(); $b->menu(); ?>
Wystarczy, że pola $a, bądź $width pozbawię "przedroska" private i już zamiast oczekiwanego rezultatu wyświetla mi się blank page. Żadnej informacji dotyczącej popełnionego błędu niestety nie otrzymuje, pomimo tego że nieokreślenie widoczności pola danej klasy oznacza chyba że jest ono typu protected ? (strzelam, bo tak jest w Javie

To samo dotyczy zakomentowanej przeze mnie metody test. Chciałem sprawdzić jak PHP radzi sobie z przeciązaniem funkcji i ponownie zamiast informacji dotyczącej błędu wyskakuje blank page.
Czy w PHP tego typu rzeczy to standard ? Nie będę bowiem ukrywał, że dojście do błędu (w przypadku określania widoczności pola $a) zajęło mi naprawdę sporo czasu. Dotychczas miałem, przez całe swoje życie, do czynienia z J2SE i J2ME i z sytuacjami takiego typu nigdy się nie spotkałem ...
Z góry bardzo dziękuję za odpowiedź.
Pozdrawiam