To wygeneruje błąd:siła PHP wyrzucić błąd na niezdefiniowanej właściwości
class foo
{
var $bar;
public function getBar()
{
return $this->Bar; // beware of capital 'B': "Fatal: unknown property".
}
}
Ale to nie będzie:
class foo
{
var $bar;
public function setBar($val)
{
$this->Bar = $val; // beware of capital 'B': silently defines a new prop "Bar"
}
}
Jak mogę zmusić PHP rzucał błędy w obu przypadkach? Uważam, że drugi przypadek jest bardziej krytyczny niż pierwszy (ponieważ zajęło mi to 2 godziny, aby znaleźć literówkę w nieruchomości).
Można sprawdzić, czy 'Bar' jest zdefiniowany poprzez' isset' –
A co, jeśli nie? Nadal nie wiem, że 'Bar' nie jest zdefiniowany w klasie. –
Cóż, wybierz CamelCase lub małe litery (lub inne konwencje), a następnie trzymać się go. Możesz użyć czegoś takiego jak [PHP CodeSniffer ('phpcs')] (http://pear.php.net/package/PHP_CodeSniffer/redirected), aby go wymusić. Błędne nazwy zmiennych dają także doskonale zrozumiały komunikat o błędzie, którego możesz użyć do szybkiego sprawdzenia, gdzie wystąpił błąd. Używanie magicznych metod '__get' i' __set' może rozwiązać problem, ale jakim kosztem? Spowoduje to zwolnienie kodu i może spowodować inny zestaw problemów. –