在课堂上正确使用include

时间:2016-07-26 14:20:10

标签: php oop

我在#section6 { background-size: cover; background-position: bottom; width: 100%; } 中有一个主要课程:

index.php

我需要在class myClass { public function lorem() { include_once 'extendClass.php'; } public function __construct() { $this->lorem(); } } // run class new extendClass(); 函数中include_once 'extendClass.php'

在我的lorem()文件中,我使用:

扩展了类函数
extendClass.php

当我在class extendClass extends myClass { public function lorem(){ echo "foo bar"; parent::lorem(); } } 中使用new extendClass()时,我收到错误,因为index.php未被触发。这个难题的解决方案是什么?

注意:include_once()必须在include_once()

之内

1 个答案:

答案 0 :(得分:3)

这里有两个问题

  1. 您正在创建一个覆盖lorem()函数的子类。您必须明确地致电parent::lorem()才能找到它
  2. 即使您调用它,执行include的父函数也意味着该函数中定义的任何内容都本地作用于该函数。这意味着你的子函数不能继承它(至少没有某种return声明)
  3. 您需要在类声明之外移动包含

    include_once 'extendClass.php';
    class myClass {
    
        public function lorem() {
        }
    
        public function __construct() {
            $this->lorem();
        }
    
    }
    
    // run class
    new extendClass();