PHP 4 - 未定义的类名

时间:2011-02-06 11:06:53

标签: php oop class php4

在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)?

3 个答案:

答案 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');