На мой взгляд, sys_loader может изменить $ test sys_core тремя способами:
1) sys_loader передается ссылка на sys_core-> test2) sys_loader возвращает новое значение для него или3) оборудуйте sys_core установщиком для $ test и передайте sys_loader ссылку на sys_core.С этой ссылкой sys_loader может получить доступ к любым переменным и функциям, которые sys_core позволяет.
Вот биты, которые я изменил / добавил, чтобы заставить работать # 3:
Пример использования:
$sc = new sys_core();
$sc->setConfigFile('123');
$sc->init();
Выход:123yes
class sys_core
// new
private $configFile = null;
// new
function getConfigFile() {
return $this->configFile;
}
// new
function setConfigFile($value) {
$this->configFile = $value;
}
// new
function setTest($value) {
$this->test = $value;
}
public function init()
{
// sys_loader::load_config('123');
sys_loader::load_config($this);
print $this->test;
}
class sys_loader
// public static function load_config($file)
public static function load_config($caller)
{
// $this->test = 'yes';
$caller->setTest('yes');
// new, example
$config = $caller->getConfigFile();
// new, example
echo $config;
}