访问变量超出范围的最佳方法是什么,请参阅我当前的方法:
// 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
变量,并且只能在主文件的范围内访问。
答案 0 :(得分:1)
require_once( 'api.php' );
class Content {
public function __construct($myapi) {
$this->myapi = $myapi;
}
function DoAction() {
$key = $this->myapi->someFunc() . "-key";
}
}
$myapi = new LazyAPI('My API', 'myapi' );
$content = new Content($myapi);
$content->DoAction();
关于depency injection in PHP的一些有用的幻灯片。