我在Codeigniter中有一个php应用程序。有3页的model.php,controller.php和view.php
model.php
<?php
class Activity_insert extends CI_Model {
public function activity()
{
echo "it works";
}
}
?>
Controller.php这样
public function viewemp($q = NULL)
{
$this->load->helper('form');
$this->load->library('form_validation');
$this->load->model('activity_insert');
$data['activity_log'] = $this->activity_insert->activity();
$this->load->view('header');
$this->load->view('sidebar');
$this->load->view('success',$data);
$this->load->view('footer');
}
view.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>GATT</title>
</head>
<body class="hold-transition skin-blue sidebar-mini">
<div class="wrapper">
</div>
</body>
</html>
编译我的视图页面后,像这样
it works <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>GATT</title>
</head>
<body class="hold-transition skin-blue sidebar-mini">
<div class="wrapper">
</div>
</body>
</html>
数据即将开始。如果我没有在view.php中的任何地方调用$ activity_log,它仍会在页面的开头显示相同的文本“it works”。请帮忙解决。
答案 0 :(得分:1)
在模型制作中
echo "it works";
到这个
return "it works";
当您的功能符合并
echo
时,它会在浏览器遇到时将值打印出来。没有数据将通过功能返回。但如果您使用return
,它将使用您的回调函数返回数据。因此,您可以在需要的地方使用该值。
What is the difference between PHP echo and PHP return in plain English?
答案 1 :(得分:0)
echo
命令在被调用时打印文本。因此,您只应在需要向用户显示一些文本时调用它。这通常会在视图中发生。
现在,当您想要将某些文本返回到某个函数并在以后使用它时,您应该使用return
而不是echo并将其存储在某个变量中供以后使用。在您的情况下,您应该在模型中
public function activity()
{
return "it works";
}
因此,当您调用$data['activity_log'] = $this->activity_insert->activity()
时,活动函数返回的数据将被分配给$data['activity_log']
变量。如果你没有返回任何东西,但是你现在就做了回音,那么在加载视图之前会打印字符串(这就是为什么它出现在html的开头),因为函数没有返回任何事情,$data['activity_log']
变量都是空的。