2014-11-21 45 views
0
<?php 

class Main 
{ 
    public function findSub($name = null) 
    { 
     Sub::show($name); 
    } 
} 

class Sub 
{ 
    public function show($name = null) 
    { 
     echo 'I am ' . $name; 
    } 
} 

$main = new Main; 
$main->findSub('chan'); // I am chan 

正如我記得,如果你想通過className::functionName()使用另一個類,您需要聲明的功能static,在這種情況下,我叫秀靜態的方式不聲明該函數爲靜態函數,但它仍然工作,怎麼樣?使用另一個類的靜態函數

回答

1

到目前爲止,我認爲你已經抑制了E_STRICT警告。它起作用(可能是因爲遺留原因),但不推薦。由於遺留原因,任何類方法都可以被靜態調用,即使它沒有被聲明爲靜態的,因爲你之前不能聲明它們。

Calling non-static methods statically generates an E_STRICT level warning. 

對於官方文檔refer this

+0

另外,在更高版本的PHP,當你調用靜態靜態非PHP函數,你可能會致命錯誤。 – 2014-11-21 04:54:11

相關問題