如果你有以下内容:
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()
答案 0 :(得分:1)
你应该考虑让你可以实例化一个扩展这个抽象类的类。 e.g。
class userConcrete extends User {
}
然后在第二课中你可以像这样注入用户对象:
class SecondClass{
protected $user;
public function __construct(userConcrete $user)
{
$this->user = $user;
}
function test(){
$this->user->mainFunction();
}
}
还在您的抽象类中公开mainFunction。