1

メソッドが呼び出されていない場合は、メソッドを呼び出したいのですが、具体的な例:

ファイル foo.php には次のものが含まれます

$p = new Foo();

メソッドが呼び出されないという事実は、特定のメソッドをトリガーします。

ファイル foo.php には次が含まれます

$p = new Foo();
$p->bar();

メソッドが呼び出されるため、これは特定のメソッドをトリガーしません。

それを行うポイントは、開始時に私のクラスを使用するユーザーのヘルプを表示することです。

また、__destruct() を使用することも考えていましたが、いつ destruct が呼び出されるかわかりません。

4

2 に答える 2

4

DaveRandoms の驚くべきコメントによると:

class fooby
{
    private $hasCalled=false;

    function __destruct()
    {
        if(!$this->hasCalled)
        {
            // Run whatever you want here. No method has been called.
            echo "Bazinga!";
        }
    }

    public function someFunc()
    {
        $this->hasCalled=true;
        // Have this line in EVERY function in the object.
        echo "Funky Monkey";
    }
}

$var1 = new fooby();
$var1->someFunc(); // Output: Funky Monkey
$var1 = null; // No triggered trickery.

$var2= new fooby();
$var2 = null; // Output: Bazinga!
于 2012-08-16T08:35:15.497 に答える
3

__destruct()正しい。

class Foo {

     private $method_invoked = false;

     public function bar(){
         $this->method_invoked = true;
         print 'bar';
     }

     function __destruct(){
         if(!$this->method_invoked) {
             print 'destr'; 
         }
     }

}
于 2012-08-16T08:22:04.760 に答える