我有一个这样的对象:
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评论的答案
我用来从目录动态实例化所有类文件的这段代码是这样,并用class实例填充第一个对象:
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()),
答案 0 :(得分:0)
根据要求。
不确定是否会满足您的要求...问题是您是否能够覆盖>>> for _ in range(10): print(next(sequences))
20160119-0-0-0
20160119-0-0-1
20160119-0-0-2
20160119-0-0-3
20160119-0-0-4
20160119-0-0-5
20160119-0-0-6
20160119-0-0-7
20160119-0-0-8
20160119-0-0-9
CORE::$ObjClassInstABS