PHP class 方法中包含文件中 $this 的范围
PHP scope of $this in included file in class method
我的 类 中有一个方法看起来像,
public function render() {
foreach ($this->_levels as $level) {
ob_start();
$path = $_SERVER['DOCUMENT_ROOT'] . '/' . $level[0] . '/' . $level[1] . '.php';
if (file_exists($path)) {
require($path);
}
$content = ob_get_clean();
if ($content) {
$this->_content = $content;
}
}
return $this->_content;
}
在包含的文件中我可以访问 $this
。无论如何我可以使这不会发生吗? (所以$this
没有定义?)
我试过将它包装在一个匿名函数中并绑定到 null 但它不起作用。
您可以在 class 和 require
文件之外创建一个新函数。 Composer 在他们的 ClassLoader.php.
中这样做
我的 类 中有一个方法看起来像,
public function render() {
foreach ($this->_levels as $level) {
ob_start();
$path = $_SERVER['DOCUMENT_ROOT'] . '/' . $level[0] . '/' . $level[1] . '.php';
if (file_exists($path)) {
require($path);
}
$content = ob_get_clean();
if ($content) {
$this->_content = $content;
}
}
return $this->_content;
}
在包含的文件中我可以访问 $this
。无论如何我可以使这不会发生吗? (所以$this
没有定义?)
我试过将它包装在一个匿名函数中并绑定到 null 但它不起作用。
您可以在 class 和 require
文件之外创建一个新函数。 Composer 在他们的 ClassLoader.php.