php如何在类函数中需要一个类?

时间:2014-05-24 13:57:15

标签: php class php-5.4

我有一个班级:

class Test {

 public function someFunction()
 {

    require('SomeOtherClass.php');

 }


}

如果另一个班级实际上不能在班级的某个职能范围内,我无法理解php如何在这里上课? php如何做到这一点? php把课程放在哪里?

3 个答案:

答案 0 :(得分:2)

这是include的文档:

  

当包含文件时,它包含的代码将继承发生包含的行的变量范围。从那时起,调用文件中该行可用的任何变量都将在被调用文件中可用。 但是,所包含文件中定义的所有函数和类都具有全局范围。 (强调添加)

require几乎在所有方面都与include相同,包括此内容。

答案 1 :(得分:1)

在课堂上使用以下内容:

class Test {
    public $other_class;

    function __construct() {
        $this->other_class = new other_class();
    }

    public function someFunction() {
        $this->other_class;
    }
}

使用它。包括这样的课程:

spl_autoload_register(function($class) {
    include_once 'classes/'.$class.'.php';
});

在包含在任何地方的文件中使用该功能

答案 2 :(得分:0)

这是完全有效的代码:

function foo() {
    class Foobar {
        function speak() {
            echo "Hi";
        }
    }
    $obj = new Foobar();
    $obj->speak();
}
// $obj = new Foobar(); // Will fail, as Foobar will be defined the global scope when running foo();
foo();
$obj = new Foobar(); // Will be OK, now the class is defined in the global scope
//foo(); // Fatal error: Cannot redeclare class Foobar 

输出结果为:

Hi

有关详细信息,请参阅documentation