0

以下在 php 中是合法的。

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

有没有办法在使用前生成属性Foo#bar未声明的通知?我厌倦了浪费时间调试错别字。

4

1 回答 1

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' );

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

于 2012-09-17T21:51:05.180 回答