這個錯誤會引發錯誤:力PHP扔在未定義的屬性
class foo
{
var $bar;
public function getBar()
{
return $this->Bar; // beware of capital 'B': "Fatal: unknown property".
}
}
但這不會:
class foo
{
var $bar;
public function setBar($val)
{
$this->Bar = $val; // beware of capital 'B': silently defines a new prop "Bar"
}
}
如何強制PHP在這兩種情況下拋出錯誤?我認爲第二種情況比第一種情況更重要(因爲我花了2個小時在物業中搜索了一個錯誤的錯字)。使用__set
也許property_exists
如果'Bar'通過'isset' –
定義你可以檢查,如果它是不是有什麼設置錯誤級別?我仍然不知道班級中沒有定義「Bar」。 –
那麼,選擇駝峯或小寫(或其他約定),然後堅持下去。你可以使用像[PHP CodeSniffer('phpcs')](http://pear.php.net/package/PHP_CodeSniffer/redirected)來執行它。另外,錯誤的變量名會給你一個完全可以理解的錯誤信息,你可以用它來快速找出發生錯誤的位置。使用魔術方法'__get'和'__set'可以解決問題,但費用是多少?它會減慢代碼的速度,並且可能會導致另一組問題。 –