可以关闭,丢失项目中的概述并使用具有相同名称和方法的文件。所以没有做出任何改变。它现在有效。抱歉浪费你的时间。我的错误。
我有一个静态工厂方法,我试图获取参数的类名。
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日志中有错误
答案 0 :(得分:1)
static function factory($row)
{
if (isset($classname)) {
$classname = get_called_class();
}
}
如果在调用变量之前使用isset()。无法显示通知未定义的变量。
http://php.net/manual/en/function.isset.php isset - 确定变量是否已设置且不是NULL