在分配之前需要声明属性

时间:2012-09-17 21:42:09

标签: php properties declaration error-reporting

以下内容在php中是合法的。

class Foo{
    function setBar($bar){
        $this->bar = $bar;
    }
}

有没有办法生成一个通知,说明在使用之前尚未声明属性Foo#bar? 我厌倦了浪费时间调试拼写错误。

1 个答案:

答案 0 :(得分:2)

我认为这就是你所追求的目标:

class Foo
{    
  function setBar( $bar )
  {
    $this->bar = $bar;
  }

  public function __set( $name, $value )
  {
    throw new Exception( 'Can not set property ' . $name );
  }    
}

$foo = new Foo();
$foo->setBar( 'bar' );

这里发生的是当调用超出范围的类属性时,将调用magic __get或__set。在那里,您可以决定如何处理这种情况。