什么是访问变量超出范围,最好的办法,看看我现在的方法:PHP:超出范围的变量访问
// Define API
require_once('api.php');
global $myapi;
$myapi = new LazyAPI('My API', 'myapi');
class Content {
function DoAction() {
global $myapi;
$key = $myapi->someFunc() . "-key";
}
}
$content = $myapi->Content(); // LazyAPI is a class that loads classes in other files using reflection
$content->DoAction();
我面对(和我无法测试,直到进一步的)问题在其他文件中重新声明或重新使用$myapi
。我只使用了global
访问修饰符,因为我知道它是有效的,我不知道是否有更好的选择。这个想法是能够声明多个$myapi
变量,并且只能在主文件的范围内访问。
纠正我,如果我错了。但是不能只在顶部执行'require_once()'并在函数'DoAction()'中实例化api吗? – Tuan 2013-04-25 00:57:42
'$ myapi'用于多个类。 – 2013-04-25 00:58:45
我认为你正在寻找单身模式。创建一个工厂类,无论您需要它,它都会返回'$ myapi'的相同实例。 – Tuan 2013-04-25 01:01:57