2014-07-08 75 views
0

我有一個以下的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)中工作?

+0

你所說的「並不意味着不工作「?你有錯誤嗎? –

回答

1

你在這裏看到this example that you get this error

Fatal error: Class 'c' not found in /tmp/execpad-0fdb5d0d9043/source-0fdb5d0d9043 on line 3

如果您打開類聲明的順序各地使其在邏輯(程序我想)定義,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

NOTE: Unless autoloading is used, then classes must be defined before they are used. If a class extends another, then the parent class must be declared before the child class structure. This rule applies to classes that inherit other classes and interfaces.

+1

謝謝先生。它非常重要而且至關重要 – Samiul

相關問題