我似乎无法从类中的函数调用函数。我创建了一些辅助函数来帮助我对当前对象进行数学运算,但是即使在同一个类中定义和调用它们,我也似乎无法访问任何函数。
我尝试使用:$this->b();
我也曾尝试过a()函数中的self::b();
,但每次都遇到相同的错误。
致命错误:未捕获错误:调用未定义函数b()
class test{
function a(){
$a = b();
return $a;
}
function b(){
return 'testing';
}
}
当我使用以下方法调用类函数时:
$obj = new test();
$value = $obj::a();
echo $value;
我什么也没收到,但报错说该功能不存在。
我只需要从一个类中访问函数,我不知道在其他许多编程语言中尝试这种方法也很容易,我还缺少什么?谢谢
答案 0 :(得分:0)
要使用与调用方法相同的类来调用方法,请使用$this->
如果该类是实例化的并且不是静态的,则还可以使用->
而不是::
查看注释以进行更改
class test{
function a(){
$a = $this->b(); // changed
return $a;
}
function b(){
return 'testing';
}
}
$obj = new test();
$value = $obj->a(); // changed
echo $value;
测试结果:
testing
如果您希望类在从您在问题中进行的代码更改中出现时是静态的,那么这就是方法
class test{
static function a(){
$a = self::b();
return $a;
}
static function b(){
return 'testing';
}
}
//$obj = new test();
//$value = $obj::a();
$value = test::a();
echo $value;
也是测试结果
testing