У меня есть такой объект:
CORE::$ObjClassInstABS['ABS']['DATA']
, который содержит массив Class->Method
:
array (
'DATA' =>
array (
'USERDATAMANAGER' =>
Class_UserdataManager::__set_state(array(
)),
'PRODDATAMANAGER' =>
Class_ProddataManager::__set_state(array(
)),
),
)
Я создаю новый объект класса типа Как:
CORE::$ObjClassInstABS['ABS']['ABSDATAMANAGER'] = new class;
Я не могу передать все методы первого объекта, игнорируя класс происхождения для класса, который я создаю на лету, и это позволяет мне выполнять функции из класса, объявленного вмуха.это существует в php 7.0 или есть ли способ достичь этого достижения ??Это было бы похоже на клонирование методов нескольких классов в один и новый класс.
Ответ для комментариев @Damian Dziaduch
фрагмент кода, который я использовал для динамического создания экземпляра всего классаэто файл из каталога и заполняет первый объект экземпляром класса:
CORE::$ObjClassInstABS['ABS']['ABSDATAMANAGER']= new class;
foreach (CORE::$ObjClassABS['DATA'] as $key => $name) {
if (strpos($name, 'class.') !== false) {
$name = basename($name);
$name = preg_replace('#\.php#', '', $name);
$names = explode(".", $name);
foreach ($names as $key => $namesr) {
$names[$key] = ucfirst(strtolower($namesr));
}
$name = implode('_', $names);
$NamesClass = $name . 'Manager';
$InstanceClass = strtoupper(preg_replace('#\Class_#', '', $NamesClass));
CORE::$ObjClassInstABS['ABS']['DATA'][$InstanceClass] = $this->$InstanceClass = new $NamesClass();
}
}
, результатом которого является массив, напечатанный в начале сообщения CORE::$ObjClassInstABS['ABS']['DATA']
.
, есливы видите в начале foreach у меня есть новое объявление класса для использования в цикле, как я могу заполнить CORE::$ObjClassInstABS['ABS']['ABSDATAMANAGER']
в цикле, все методы первого экземпляра объекта, и сделать его исполняемыми?
что я хочу (не работает):
foreach ( CORE::$ObjClassInstABS['ABS']['DATA'] as $key => $value ) {
CORE::$ObjClassInstABS['ABS']['ABSDATAMANAGER'] .= Clone($value);
}
$value
представляют, где хранятся методы:
::__set_state(array()),