PHP类在旧版本中无法正常工作

时间:2014-07-08 21:14:01

标签: php

我有一个以下的php课程。

<?php

class t extends c{
  function __construct() {    
    parent::__construct();   
  }
}
class c extends d{
   function __construct() {    
    parent::__construct();   
   }
}
class d {
  function __construct() {          
    echo "worked";
  }
}

new t();
?>

上面的类在我的本地机器上工作正常,其中PHP版本是(PHP版本5.5.9-1ubuntu4.2)

但它不适用于php版本的云服务器(PHP版本5.4.26和linux主机) 我有另一个php版本的服务器(PHP版本5.3.28 amazone云服务器) 上面的代码也没有用。

知道为什么它不能在上面两个php版本(5.4.26和5.3.28)中工作?

1 个答案:

答案 0 :(得分:1)

您可以在this example that you get this error中看到:

  

致命错误:班级&#39; c&#39;在第3行的/ tmp / execpad-0fdb5d0d9043 / source-0fdb5d0d9043中找不到

如果你改变你的类声明的顺序,以便它在逻辑(程序,我想)中定义,you get what you expect(PHP 5.4.6):

class d { /* etc */ }

class c extends d { /* etc */ }

class t extends c { /* etc */ }

new t(); // worked

请参阅PHP manual on object inheritance

  

注意:除非使用自动加载,否则必须在使用之前定义类。如果类扩展另一个类,则必须在子类结构之前声明父类。此规则适用于继承其他类和接口的类。