來源:互聯網
上載者:User
關鍵字
php
php5.6
php-php進階
php-坑
class a{
public function a(){}
include('file.php');
}
我想這樣寫,可是不支援。
回複內容:
class a{
public function a(){}
include('file.php');
}
我想這樣寫,可是不支援。
首先要區分函數和方法的區別,你如果是要引入函數的話,在檔案頭include就可以了,不過需要判斷是否定義函數,否則會拋出函數重定義的錯誤,如果是引入的方法的話要麼用繼承要麼用trait將其變成成員,否則的話就建立一個對應的類執行個體就可以了,要注意在建立執行個體的時候,類已經成功被載入
class a{ public function a(){ include('file.php'); }}
假設你要引入類檔案需要調用裡面的類方法,現在有兩個類檔案,file.php和a.php,裡面代碼分別如下:
file.php
a.php
_fileObj = $fileObj; }}
a類要使用file類的方法,代碼如下:
_fileObj = $fileObj; }}
將file類對象傳給a類:
$file = new a(new File());
然後就可以在a類中使用file類方法了。
如果是要在類中使用函數那就更簡單了,直接將雷倩引入函數檔案即可(即將a檔案中require的檔案改成函數檔案即可),因為函數預設註冊的是根命名空間。
如果你打算在類中載入一個檔案。可以放到 __construct
中。
比如一個檔案 a.php
index.php
這樣在類中就可以負載檔案 a.php
因為 include 是一條語句, 不能直接放到類中, 放到類的初始化函數 __construct
就可以自動執行。
你的想法兒不對,你還是先理解物件導向吧。
首先來說函數沒必要在對象中被引用,對象就是對象,函數就是函數,之所以是函數說明它可能無法沒明確的歸納為所屬的對象。
方法則是通過繼承的方式獲得的,不需要include的。
比如你定義了一個水果類,那麼這個類可以有 獲得果汁含量 的方法,但是不應該有榨汁的方法,那應該是榨汁機對象提供的。
包括所有方法的 萬能對象 是不存在的,這個狀態下的對象與沒有對象想成相同的結果。