isset()中的未定义变量

时间:2014-09-23 16:38:49

标签: php undefined

可以关闭,丢失项目中的概述并使用具有相同名称和方法的文件。所以没有做出任何改变。它现在有效。抱歉浪费你的时间。我的错误。

我有一个静态工厂方法,我试图获取参数的类名。

static function factory($row)
{
  if (is_null($classname)) {
    $classname=get_called_class();
  }

错误输出:

  

[Tue Sep 23 18:35:24.078345 2014] [:error] [pid 9971] [客户   127.0.0.1:45702] PHP注意:未定义的变量:第9行/var/www/dev/lib/class.base.php中的类名,参考文献:

> http://localhost/dev/app.php?action=do

当我尝试设置$ classname = null;在检查之前,还有一个未定义的变量错误。与isset($ classname)相同。我做错了什么?

这是另一个例子,对我来说不起作用:

 class definetest{
 static function factory()
    {
      if (is_null($classname)) {
        $classname=get_called_class();
      }
      return $classname;
    }

}

$x = new definetest();

echo $x::factory();

它返回类名,但我的apache日志中有错误

1 个答案:

答案 0 :(得分:1)

static function factory($row)
{
  if (isset($classname)) {
    $classname = get_called_class();
  }
}

如果在调用变量之前使用isset()。无法显示通知未定义的变量。

http://php.net/manual/en/function.isset.php isset - 确定变量是否已设置且不是NULL