我在 __isset 中的实际代码中遇到错误,但是当我访问“运行 php 在线网站”时,它可以工作。所以我不确定为什么它在我的代码中不起作用。
<?
class Test {
private $args;
public function __construct($args = array()) {
$this->args = $args;
}
public function __isset($name) {
return $this->args[$name]; //undefined index on my server (is fine on php site)
}
function prnt() {
// echo isset($this->i) ? "set" : "notset"; --> works, both print 'set'
echo isset($this->h) ? "set" : "notset";
}
}
?>
然后我执行这个:
$test = new Test(array('i' => '1234'));
$test->prnt();
//result on php website: notset
//result on my website: Undefined index at the line shown above.
可能有用的信息:
我的服务器正在运行 php 5.1。
这isset($this->var)
发生在include
我实际代码中的文件中。
只要变量存在(i
如上),它显然有效。