PHP MVC-如何在包含或要求文件中获取变量的值

时间:2018-10-03 08:35:03

标签: php

我正在通过php学习和编写MVC。我从文件控制器设置了变量的值,我想在文件视图中获取值,但是它不起作用。 我的控制器:

$text = preg_replace("/^\uFEFF/", '', $text); 

我的观点list.php:

class BooksController extends Controller
    {
        function list()
        {
            $books = $this->model->get_all(); 
            render('view/book/list');
        }
    }

我的函数渲染:

 <?php
  var_dump($books);
?>

结果:NULL

我尝试替换:

function render($file_name,$extent="php"){
        $file_name = 'view/'.$file_name.'.'.$extent;
        if(!file_exists($file_name))
            throw new Exception("Can't open file ".$file_name);
        require_once $file_name; 
    }

render('view/book/list');//not work

请告诉我,怎么了?

2 个答案:

答案 0 :(得分:0)

您要将view / book / list.php传递给

$file_name = 'view/'.$file_name.'.'.$extent;

这将导致$ filename ='view / view / book / list.php.php'

将变量转储到屏幕或日志文件中,将来可能会在这种情况下为您提供帮助。参见http://php.net/manual/en/function.var-dump.php

尝试

render('book/list');

答案 1 :(得分:0)

view进入函数渲染并在函数$books中传递render时,它有2次。

class BooksController extends Controller
{
    function list()
    {
        $books = $this->model->get_all(); 
        render('book/list',$books);
    }
}

然后在您的函数中渲染

function render($file_name,$data,$extent="php"){
    $file_name = 'view/'.$file_name.'.'.$extent;
    $books = $data;
    if(!file_exists($file_name))
        throw new Exception("Can't open file ".$file_name);
    require_once $file_name; 
}