Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP类和包括_Php_Oop_Class_Include - Fatal编程技术网

PHP类和包括

PHP类和包括,php,oop,class,include,Php,Oop,Class,Include,我有以下问题: 这是我的主文件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;

我有以下问题:

这是我的主文件
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\u a.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;

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


有更好的主意吗?

如果函数太长,请将其拆分为更多的小函数。它们必须是有用的,而不是像功能部件01

例如,getDataFromFile(),如果函数A读取文件

如果仍然需要创建一个新文件,可以使用myClass在extends中创建一个抽象类


也许你应该重新考虑你的课堂设计?

你在问题的结尾暗示了最好的方式。您需要创建一个父类,并让您的“myClass”扩展您的父类。然后,“myClass”将继承父类的方法,父类可以位于另一个文件中。这就是你想要的吗?

除非你想把
myClass
作为一个基类,否则不要
使用另一个类来扩展它


包含包含
myClass
类的文件,并实例化
myClass
的对象以使用函数
A

,因此您希望
函数A
在另一个文件中,但仍然是类
myClass
的一部分?为什么要拆分最终需要立即读取的内容?是的,我希望将整个函数A放在另一个文件中,但要具有与主类中相同的功能。不能在类中“包含”文件,除非include语句本身实际上位于该类中存在的方法中,并且只有在执行该方法时才会包含该文件。为什么不将该类放入它自己的文件中呢?在PHP世界中,每个文件一个类是很常见的。自动装弹机也能很好地工作。