У меня есть мой абстрактный класс:
class AbstractClass
{
public function func($arguments)
{
// $this->array[0] (...)
}
}
И мой класс ребенка:
class ChildClass extends AbstractClass
{
protected $array = [
//(some content)
];
}
И когда я запускаю (new ChildClass)->func()
я получаю предупреждение "Массив свойств не существует". Должен ли я помещать array
свойств в AbstractClass или просто игнорировать предупреждение?
Просто переместите свойство в AbstractClass
с некоторым значением по умолчанию. Например
class AbstractClass
{
protected $array = ['default'];
public function show()
{
print_r($this->array);
}
}
class A extends AbstractClass
{
protected $array =[1,2,3,4,5];
}
class B extends AbstractClass
{
protected $array =['A','B','C','D'];
}
class C extends AbstractClass
{
// use the defaults
}
echo (new A)->show();
echo (new B)->show();
echo (new C)->show();
Выход
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
Array
(
[0] => A
[1] => B
[2] => C
[3] => D
)
Array
(
[0] => default
)
Нет предупреждений.
key
,value
вprotected $array
и вызываю его вAbstractClass
он работает нормально.