2012-01-31 110 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