【发布时间】:2013-04-25 00:48:20
【问题描述】:
访问超出范围的变量的最佳方法是什么,请参阅我当前的方法:
// 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吗? -
$myapi用于多个类。 -
我认为您正在寻找单例模式。创建一个工厂类,在需要时返回
$myapi的相同实例。 -
变量不能总是一样的,但是名字总是要一样的。使其成为静态/等。行不通。
标签: php global-variables scope reusability redeclare