我是PHP中面向对象编程的新手。我包含了一个类并调用它,然后,在这个类的构造函数中,我正在调用一个名为handleConnections的私有函数。出于某种原因,它给了我一个致命的错误(未定义的功能)。知道为什么吗?
班级:
class Test
{
function __construct()
{
handleConnections();
}
private function handleConnections()
{
//do stuff
}
}
它似乎完美无缺,但我收到了这个错误。如果有人知道可能有什么问题,请告诉我。谢谢!
答案 0 :(得分:4)
尝试:
$this->handleConnections();
如果您没有使用$ this为您的通话添加前缀,则它会尝试调用全局函数。 $这在PHP中是强制性的,即使没有歧义也是如此。
答案 1 :(得分:4)
只是扩展FWH的答案。
当您创建一个类并将其分配给变量时,您可以使用$ variable-> function();从该类外部调用该类中的任何函数。但是,因为你在课堂上,你不知道课程的分配是什么,所以你必须使用$ this->用于访问任何类属性的关键字。一般经验法则,如果您像$ obj-> var一样访问它,请使用$ this->访问它。
class myClass
{
function myFunc()
{
echo "Hi";
}
function myOtherFunc()
{
$this->myFunc();
}
}
$obj = new myClass;
// You access myFunc() like this outside
$obj->myFunc();
// So Access it with $this-> on the inside
$obj->myOtherFunc();
// Both will echo "Hi"