2013-03-31 173 views
-2

問題:比較這兩段代碼,爲什麼第一個輸出什麼都沒有?
當我使用eclipse來運行這些代碼時,什麼都沒有發生,我不知道它爲什麼不打印「構造正在運行」。PHP構造函數

然而,當我運行的代碼,印刷第二款:
「將構建正在運行...」
「經理構建正在運行...」
爲什麼呢?

第一段:

<?php 
class Employee 
{ 
    protected $name; 
    protected $title; 

    function _construct() 
    { 
     echo "The constrcut is running..." . '<br>''; 
    } 
} 
$employee = new Employee(); 
?> 

第二款

<?php 
class Employee 
{ 
    protected $name; 
    protected $title; 

    function _construct() 
    { 
     echo "The constrcut is running..." . '<br>''; 
    } 
} 

class Manager extends Employee 
{ 

    function __construct() 
    { 
     parent:: _construct(); 
     echo "The Manager construct is running..."; 
    } 
} 
$employee = new Manager(); 
?> 
+7

的構造函數應該有兩個下劃線是一樣的所有其他魔術方法的前綴。只有最後一個構造函數有兩個下劃線。 – andho

+0

@andho ??你的意思是? – Justin

+0

我在兩個代碼中都看到了synthax錯誤,這顯然不是您的原始測試。這應該運行一次並輸出正確的結果。你的問題必須在你不知道的地方。 – Havenard

回答

0

替換類Employee

function _construct() 
{ 
    echo "The constrcut is running..." . '<br>''; 
} 

帶:

function __construct() 
{ 
    echo "The constrcut is running..." . '<br>''; 
} 

請注意雙下劃線(__)。


而且你有一個語法錯誤的位置:

echo "The constrcut is running..." . '<br>''; 
-------------------------------------------^ Why two 's? 
+3

對不起,但這個問題不值得一個答案。 – andho

+0

是的,我想是的。但只是爲了伸出援助之手。 –

+0

對不起,這是我的錯誤輸入 – Justin