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 に答える