Самая большая проблема здесь в том, что вы используете ключевое слово parent в качестве имени класса. Это делает совершенно двусмысленным, предназначены ли ваши вызовы parent :: $ var1 для указания на этот класс или на родительский класс вызывающего класса.
Полагаю, если вы очистите это, вы сможете добиться того, чего хотите. Этот код печатает «что-то», например.
class core {
static $var1 = 'something';
}
class foo extends core {
function getStatic() {
return parent::$var1;
}
}
class bar extends foo {
function getStatic() {
// I want to access core static var, how can i do it?
return parent::$var1;
}
}
$b = new bar ();
echo $b->getStatic ();
Это также работает, если вы используете core::
вместо parent::
. Эти два будут вести себя по-разному, хотя, если вы объявите статический $ var1 внутри класса foo
. Так как это единственная, унаследованная переменная.