Фактальная ошибка: неопределенная функция - почему?
Вопрос
Я новичок в объектно -ориентированном программировании в PHP. Я включил класс и назвал его, в то же время в конструкторе этого класса я называю частную функцию, называемую HandleConnections. По какой -то причине это дает мне фатальную ошибку (неопределенная функция). Есть идеи, почему?
Класс:
class Test
{
function __construct()
{
handleConnections();
}
private function handleConnections()
{
//do stuff
}
}
Это кажется безупречным, и все же я получаю эту ошибку. Если у кого -нибудь есть подсказка, что может быть не так, пожалуйста, скажите мне. Спасибо!
Решение
Просто расширяя ответ 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"
Другие советы
Попробуйте с:
$this->handleConnections();
Если вы не префиксу свои вызовы с этим, он пытается вызвать глобальную функцию. $ Это обязательно в PHP, даже если не может быть никакой двусмысленности.