在PHP 4中,如果在定义之前使用类,则会出现此错误:
致命错误:未定义的类名 'foo'in ...
我的代码是:
function do_stuff(){
if(foo::what()) ... // this code is before the php file with the foo class is included
}
class foo{
function what(){
...
}
}
do_stuff();
是否有任何解决方法(除了告诉使用您的脚本的人更新到php5)?
答案 0 :(得分:1)
在脚本开头require_once()
d的文件中定义类。
答案 1 :(得分:1)
您可以改为使用:
call_user_func(array('foo', 'what'));
会导致在运行时检查类/方法而不是编译时。
答案 2 :(得分:1)
如果使用php4,则可以使用class_exists
测试类的存在性。因此,要与php5兼容,您可以编写此类代码:
<?php
function __autoload($classname) {
include("classes/$classname.class.php");
}
if (!class_exists('foo')) __autoload('foo');