PHP调用两个函数,但保存第一个变量?

时间:2016-11-16 04:53:50

标签: php templates scope

我正在尝试使用下面的函数设置标题,然后调用另一个函数,以便我可以渲染视图,但在我看不到标题之后。这是我的代码:

来自其他文件的

片段:

&

这是我的观点类:

$indexPage = new View();
$indexPage->setPageTitle('This is the title');
$indexPage->render('index');

然后我会在我的页面上访问它:

的index.php:

class View {

    private $title;

    public function render($file) {
        require '/view/header.php';
        require '/view/'.$file.'.php';
        require '/view/footer.php';
    }

    public function setPageTitle($title) {
        $this->title = $title;
    }

}

但它没有显示。

2 个答案:

答案 0 :(得分:1)

是的,它不会显示。如果您在代码snipet中提到的<?php echo $indexPage->title ?>中创建了View对象,那么您调用public WordCount traverse(WordCount root) { current = root; if (current.getCount() > max) { var = current; max = var.getCount(); } else if (current.getLeftChild() != null) { next = current.getLeftChild(); traverse(next); } else if (current.getRightChild() != null) { next = current.getRightChild(); traverse(next); } return var; } 否则当您渲染视图模板时,您必须像大多数MVC一样传递数据。

注意:如果要直接访问它,请将title变量设为public,否则编写另一个公共函数并返回私有成员。

答案 1 :(得分:0)

尝试<?php echo $indexPage->title ?>并将private $title;更改为public $title;

私有变量无法在其所在的类之外访问。