Вызов функции-члена из другой функции-члена в PHP?

Меня немного смущает ситуация, показанная в этом коде ...

class DirEnt
{
    public function PopulateDirectory($path)
    {
        /*... code ...*/

        while ($file = readdir($folder))
        {
            is_dir($file) ? $dtype = DType::Folder : $dtype = Dtype::File;                       
            $this->push_back(new SomeClass($file, $dtype));
        }

        /*... code ...*/
    }

    //Element inserter.
    public function push_back($element)
    {
        //Insert the element.
    }
}

Зачем мне нужно используйте $ this-> push_back (new SomeClass ($ file, $ dtype)) или self :: push_back (new SomeClass ($ file, $ dtype)) для вызова члена функция push_back ? Кажется, я не могу получить к нему доступ, просто выполнив push_back (new SomeClass ($ file, $ dtype)) , как я ожидал. Я прочитал Когда использовать self вместо $ this? , но он не дал ответа, зачем мне вообще нужен один из них (или, если да, то, может быть, я что-то еще испортил).

Почему требуется эта спецификация, если члены нестатичны и принадлежат к одному классу? Разве все функции-члены не должны быть видимыми и известными из других функций-членов в том же классе?

PS: Он отлично работает с $ this -> и self :: , но говорит функции неизвестны, если ни одна из них не присутствует в вызове push_back .

9
задан 7ochem 28 December 2017 в 12:08
поделиться