Поскольку использование $parent
предполагает, что вы действительно создали экземпляр родительского класса.
Если ваш синтаксис предлагает сработать, это будет означать, что каждый раз, когда вы создаете экземпляр одного объекта, вы создаете экземпляр 2 или более объектов.
В PHP каждая переменная должна содержать строку, целое число (или другой числовой формат), массив, объект или ресурс. $this
содержит объект, и это просто тот объект, внутри которого вы сейчас находитесь.
Чтобы создать $parent
, вам нужно поместить объект внутрь $parent
. Ваш родительский класс технически не создан, поэтому его нельзя присвоить переменной.
Кстати parent::function();
имеет доступ ко всем $this
.
Следовательно, это работает
class Test
{
public function test()
{
echo $this->testing_var;
}
}
class OtherTest
{
public function run()
{
$this->testing_var = "hi";
Test::test(); // echos hi
}
}
И это приведет к ошибке, если оно используется вне класса, и скажет вам, что оно должно быть объявлено как статическое.
Test::test();