Я новичок в объектно-ориентированном программировании на 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();
Если вы не префикс своих вызовов с помощью $ this, он пытается вызвать глобальную функцию. $ это обязательно в PHP, даже если не может быть никакой двусмысленности.