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 回答