W PHP dostęp do pól (właściwości) obiektu "z zewnątrz", czyli z kodu, który nie znajduje się wewnątrz definicji danej klasy, zależy od modyfikatora dostępu ustawionego przy właściwości.
- public – właściwość jest dostępna wszędzie: zarówno wewnątrz klasy, jak i z kodu zewnętrznego przez nazwę obiektu (np. $obj->pole).
- protected – dostęp jest możliwy tylko wewnątrz klasy oraz w klasach dziedziczących; kod zewnętrzny nie może użyć nazwy obiektu, aby odczytać/zapisać to pole.
- private – dostęp jest możliwy wyłącznie wewnątrz tej samej klasy; nawet klasy potomne nie mają bezpośredniego dostępu.
W zadaniu należy odczytać z definicji klasy, które pole ma widoczność publiczną. Ponieważ pole $a jest publiczne, to właśnie do niego będzie możliwy dostęp przez nazwę obiektu będącego instancją tej klasy.
Odpowiedź "Do wszystkich pól." jest błędna, bo PHP nie udostępnia automatycznie wszystkich właściwości na zewnątrz – działa tu enkapsulacja i kontrola widoczności. Odpowiedzi "Do pola $b." oraz "Do pola $c." są błędne, gdy te pola nie mają widoczności public (np. są protected/private), więc próba dostępu z zewnątrz skończy się błędem dostępu.
Wskazówka egzaminacyjna: przy takich pytaniach zawsze najpierw wyszukaj w kodzie słowa kluczowe public/protected/private, a dopiero potem wybieraj odpowiedź. Sama nazwa zmiennej ($a, $b, $c) nie niesie informacji o dostępności.