2016-11-16 125 views
0

我想用下面的函数设置一个标题,然后调用另一个函数,这样我就可以渲染视图,但看不到标题。这里是我的代码:PHP调用两个函数,但保存第一个函数的变量?

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

这是我的观点类:

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; 
    } 

} 

那么我会访问我的网页上:

的index.php从另一个文件

片段:

<?php echo $this->title ?> 

但它不显示。

+0

它应该按照您的情况在这里工作。为了进行调试,请打开错误报告并查看是否有任何错误 – Thamilan

+0

@Thamilan从不知道这是现在的工作,谢谢! – baileyJchoi

回答

1

是的,它不会显示。如果您在代码snipet中提到的index.php中创建了视图对象,那么您可以调用<?php echo $indexPage->title ?>否则,当您渲染视图模板时,必须像大多数MVC那样传递数据。

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

+0

'$ indexPage-> title'不起作用 – baileyJchoi

+0

没关系现在这工作谢谢! – baileyJchoi

0

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

私人变量不能在他们所在班级之外访问。

相关问题