我有一个类加载我页面的某些部分。我想做的是这个
index.php
$obj->load('admin');
在构造函数的我的类中,我检查URI是否包含段/admin/
,如果是,则自动加载管理页面:
$this->load('admin');
现在两者都工作正常,我才意识到,如果我的项目中有两个条目,那么它将加载admin
初始化两次。
我有办法检查load()
方法是否已被调用,且参数是==
到admin
吗?
答案 0 :(得分:2)
一种方法是使用static
缓存:
function load($what) {
static $loaded = array();
if (!isset($loaded[$what])) {
// Load..
// Mark as loaded
$loaded[$what] = true;
}
}
答案 1 :(得分:1)
class Foo {
private $loaded = false;
function someFunc() {
$this->loaded = true;
}
function loaded() {
return $this->loaded;
}
}
答案 2 :(得分:0)
可以保留一个对象成员变量变量,并在第一次调用load admin时保留一个标志。在第二次通话中检查标志。
答案 3 :(得分:0)
最简单 - 创建名为'$ invokedAlready'的附加变量。首先将其设置为“false”。在你的方法中放置:
if ( $invokedAlready )
{
// do sth
}
else
{
// first invocaion
// do sth else
$invokedFirst = true;
}