3

我一直在研究Lithium PHP Framework,但我不明白它是如何设置的$this->context;尤其是在这个布局中。)

由于您显然不能简单地重新分配$this,因此该布局将在某些时候被包含在内,而更让我困惑的是它们$this在类定义之外使用的事实。

我有一段时间没有编写 PHP 代码了,所以请在这里帮助我。

4

2 回答 2

4

让我印象深刻的第一个想法是这个模板页面是从一个方法中调用的。

class Viewer
{
    public $html;
    private $title;
    private $content;

    public function __construct()
    {
        $this->html = new \Utilities\HTMLBag();
    }
    public function loadView($template)
    {
        ob_start();
        include 'path/to/views/'.$template.'.php';
        $this->content = ob_get_clean();
    }
    public function title()
    {
        return $this->title;
    }
}

至此,included$template可以访问Viewer类的任意方法

于 2012-11-22T10:06:45.543 回答
2

很简单:通过在类的方法中调用 include/require。

文件 A.php:

<?php
class A {
    public $test = 'Hello';

    public function xyz() {
        include 'B.php';
    }
}

文件 B.php:

<html>
    <body><?php echo $this->test; ?></body>
</html>
于 2012-11-22T10:02:56.413 回答