2012-01-31 195 views
-1

我有以下問題:PHP類,包括

這是我的主文件index.php

<?php 

class myClass 
{ 
    function myClass() 
    { 
    echo '[constructor]'; 
    $this->myVar = '[i am making a test]'; 
    $this->A(); 
    } 
    function A() 
    { 
    echo '[function A works too]'; 
    echo $this->myVar; 
    } 
} 

$test = new myClass; 

?> 

現在我需要移動function A到另一個PHP文件includes/function_a.php,我可以include_once在主文件。原因是讓我的主文件更小,更容易閱讀。

這樣做的最佳做法是什麼?

編輯:

我做這個使用擴展:

的index.php

<?php 

include_once('includes/function_a.php'); 

class myClass extends anotherClass 
{ 
    function myClass() 
    { 
    echo '[constructor]'; 
    $this->myVar = '[i am making a test]'; 
    $this->A(); 
    } 
} 

$test = new myClass; 

?> 

包括/ function_a.php

<?php 
class anotherClass 
{ 
    function A() 
    { 
    echo '[function A works too]'; 
    echo $this->myVar; 
    } 
} 
?> 

有什麼更好的想法?

+3

所以你想'功能A'在另一個文件中,但仍然是'myClass'類的一部分? – 2012-01-31 19:52:16

+0

爲什麼要拆分最終需要一次閱讀的內容? – Alfabravo 2012-01-31 19:55:02

+0

是的,我希望將整個函數A放置在另一個文件中,但要具有與在主類中相同的功能。 – acoder 2012-01-31 19:59:16

回答

3

你提示最好的方法來完成你的問題。你需要創建一個父類,讓你的「myClass」擴展你的父類。然後,「myClass」將繼承父類的方法,並且父類可能位於另一個文件中。那是你在找什麼?

0

如果函數太長,則將其分割爲更多小函數。它們必須是有用的,不像functionA_part01 ...

例如, getDataFromFile(),如果函數A讀出一個文件。

如果仍然需要創建一個新文件,您可以創建一個abstract-Class來擴展它們與myClass。

也許你應該重新考慮你的班級設計?

1

除非你想服務myClass作爲基類別不要EXTEND它使用另一個類。

包含文件包含myClass類,並實例化一個對象myClass使用函數A