dostęp do prywatnej zmiennej z funkcji członka w PHP
Wyprowadziłem klasę zException
, zasadniczo tak:
class MyException extends Exception {
private $_type;
public function type() {
return $this->_type; //line 74
}
public function __toString() {
include "sometemplate.php";
return "";
}
}
Potem zacząłem odMyException
w ten sposób:
class SpecialException extends MyException {
private $_type = "superspecial";
}
Jeśli jathrow new SpecialException("bla")
z funkcji, złap ją i idźecho $e
, a później__toString
funkcja powinna załadować szablon, wyświetlić go, a następnie nie zwracać niczego do echa.
W zasadzie jest to plik szablonu
<div class="<?php echo $this->type(); ?>class">
<p> <?php echo $this->message; ?> </p>
</div>
moim zdaniem powinno to zdecydowanie działać. Jednak pojawia się następujący błąd, gdy zgłaszany jest wyjątek i próbuję go wyświetlić:
Błąd krytyczny: Nie można uzyskać dostępu do własności prywatnej SpecialException :: $ _ wpiszC: ścieżka do wyjątki.php online74
Czy ktoś może wyjaśnić, dlaczego łamam zasady tutaj? Czy robię coś strasznie dowcipnego z tym kodem? Czy istnieje dużo bardziej idiomatyczny sposób radzenia sobie z tą sytuacją? Punkt$_type
zmienna jest (jak pokazano), że chcę użyć innej klasy div w zależności od typu złapanego wyjątku.