0

如果您有以下情况:

abstract class User {

    function checkThis() {          

        return true;    
    }

    function mainFunction() {

    }
}

你想checkThis()从内部打电话mainFunction(),你会这样做吗?

abstract class User {

    function checkThis() {

        return true;    
    }

    function mainFunction() {

        if ($this->checkThis())
            echo "Works";
    }

如果我从另一个类中调用它,我似乎遇到了问题,比如:

class SecondClass {

    function test() {
        User::mainFunction();
    }    
}

提供此错误:

Fatal error: Call to undefined method SecondClass::checkThis()
4

1 回答 1

1

您也许应该考虑拥有一个可以实例化的类,它扩展了这个抽象类。例如

class userConcrete extends User {

}

然后在第二堂课中,您可以像这样注入用户对象:

class SecondClass{

    protected $user;

    public function __construct(userConcrete $user)
    {
        $this->user = $user;
    }
    function test(){
        $this->user->mainFunction();
    }

}

还将 mainFunction 在您的抽象类中公开。

于 2012-10-30T14:58:37.220 回答