如果没有调用方法,我想调用一个方法,具体示例:
文件foo.php只包含
$p = new Foo();
没有调用任何方法会触发特定方法。
文件foo.php现在包含
$p = new Foo();
$p->bar();
这不会触发特定方法,因为调用了一个方法。
这样做的目的是为在课程开始时使用我的课程的用户显示帮助。
此外我还在考虑使用__destruct(),但是在调用destruct时我不太确定。
答案 0 :(得分: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!
答案 1 :(得分: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';
}
}
}