我想知道在调用属性时是否有办法自动创建对象。一个例子:
<?php
echo $myObj->myProperty
?>
此代码当然会失败,因为我在读取属性之前没有启动$ myObj。 我正在寻找的是一种基于“myObj”自动启动$ myObj的方法。
类似的东西:
<?php
class myObj {
public myProperty = 'BlaBla';
}
echo $myObj->myProperty; //outputs BlaBla instead of failing
?>
我知道__autoload($ classname),但这只能用于启动类代码,即include(),所以这不是后来的。
答案 0 :(得分:1)
你可以使用魔术方法自动化这样的东西......
答案 1 :(得分:0)
关闭这个问题,这就是我最终做的事情:
preg_match_all("/\\\$(.*?)->/si", $code, $matches);
我循环从数据库中获取的代码,查找对象
等对象的任何引用$xxxx->
然后我循环引用并创建对象
foreach($matches[1] as $key=>$value) {
$$value = Connector::loadConnector($value);
}
“loadConnector是:
public function loadConnector($connector, $params = NULL) {
require_once $connector. ".php";
$c_name = $connector;
return new $c_name($params);
}
这当然是基于我的文件结构,它也需要一些错误处理,但到目前为止看起来它解决了我的问题:)
BR /淑娜