我有一个班级:
class Test {
public function someFunction()
{
require('SomeOtherClass.php');
}
}
如果另一个班级实际上不能在班级的某个职能范围内,我无法理解php如何在这里上课? php如何做到这一点? php把课程放在哪里?
答案 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。