Фактальная ошибка: неопределенная функция - почему?

StackOverflow https://stackoverflow.com/questions/1150108

  •  18-09-2019
  •  | 
  •  

Вопрос

Я новичок в объектно -ориентированном программировании в 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, даже если не может быть никакой двусмысленности.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top