如果将 HTML 标记设置为 PHP 变量的值和要查看的初始导演,哪一个更好?

Which one if better than for setting HTML tag to PHP variable's value and initial director to view?

我想将 html 标记声明为 PHP 变量中的字符串值,并且 return 该变量在 Nav() 中函数,这个函数将放在 MY_Model 上,然后我会将这个值转移到 Pages_Controller 上的 $menu 变量 喜欢 $this->data['munu'] = $this->MY_Model("nav"); 而不是我将回显此 $menu 变量以查看为 <?PHP echo $menu; ?>。所以我的意思是我不会在视图中平面或包装我的 html 标签我已经将它包装在 Nav() 函数。

所以我想问问所有的朋友,它比在 文件 中的 html 标签上包装 $menu 变量更快或更好 View 有没有文件夹?

这是我的简单代码。

Class Pages extends CI_Controller{
       $this->load->model("MY_Model");
       $this->data['menu'] = $this->MY_Model->nav();
}

这是我的MY_Model

Class MY_Model extends CI_Model{
      Public function nav(){
             $str ='<html><div><nav>Here is the wraper of html tage and PHP variable which retrieve value from Database </nav></div></html>';
return $str;
}
}

这是我的 **page.PHP 在视图中**

<?PHP echo $menu; ?>

不是这里只是简单的代码,但我网站上的代码可以正常工作,但我担心这种结构比包装 PHP 变量更好HTML tagpage.php 或不是还是一样?

请大家帮忙出出主意。

准则:
1)模型只是用来查询数据库,得到结果而已。
2) HTML 标签不应该在控制器中(不是一个好的做法)。
3) 回答你的问题,在控制器中保留 HTML 标签不会有任何区别(更快或更慢),但你最终会弄乱你的代码.
4) 还有为什么我们使用 MVC 架构 来保持我们的 HTML(视图)、数据库查询(模型)分离。而且您的方法根本不是面向 MVC 的。

这是一个更好的方法,


控制器:

<?php
class Xyz extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->model('xyz_model');
    }

    public function abc()
    {
        $data['menu'] = $this->xyz_model->get_menus();
        $this->load->view('xyz',$data);
    }
}


型号:

<?php
class Xyz_model extends CI_Model
{
    public function __construct()
    {
        parent::__construct();
        $this->db = $this->load->database('default',true);
    }

    public function get_menus
    {
        $query = $this->db->get('menus');
        return $query->result();
    }
}


查看:

<html>
    <div id="menu">
        <ul>

        <?php foreach($menu as $m) { ?>
        <li><?php echo $m->name; ?></li>
        <?php } ?>

        </ul>
    </div>
</html>