IF会话声明 - 格式化Q.

时间:2012-11-21 02:13:02

标签: codeigniter codeigniter-2

所以我在我看来有这个IF语句。它可以工作,但是想知道是否有更好的方法来写这个。两个会话调用似乎都不必要......

if($this->session->userdata('campaign_name')){
    echo $this->session->userdata('campaign_name');
}
else {
    echo 'this';
}

注意此函数将在文本输入中内联使用。所以我正在寻找尽可能少的代码。

2 个答案:

答案 0 :(得分:3)

请注意,如果不存在campaign_name,则CI的Session类的userdata方法将返回false。因此,将一个变量分配给可能未定义的数组键(campaign_name)

$campaign_name = $this->session->userdata('campaign_name');

if($campaign_name)
{
    echo $campaign_name;
}
else
{
    echo 'this';
}

if($campaign_name = $this->session->userdata('campaign_name'))
{ 
   echo $campaign_name;
}

控制器方法(/application/controllers/test_controller.php)

    <?php if (!defined('BASEPATH')) exit('No direct script access allowed');

    class Test_Controller extends CI_Controller
    {
        function __construct()
        {
            parent::__construct();

        }
        public function myFunction()
        {
            $data['campaign_name'] = $this->session->userdata('campaign_name');
            $this->load->view('test_view',$data);

        }
    }

查看(/application/view/test_view.php)

<html>
<head></head>
<body>
     <input type="text" value="<?php echo $campaign_name; ?>">
</body>
</html>

答案 1 :(得分:1)

在控制器中,您可以将该会话数据的值存储到变量中,并将其传递给视图。在视图中,您可以使用if else语句来查看变量。我建议不要像RPM那样在视图中设置变量。虽然它有效,但它打破了你所关注的问题。

另外,请考虑在CodeIgniter中使用alternative PHP syntax查看视图。它会使你的代码更整洁,更易于维护。

编辑:我现在看到RPM更新了他在控制器中设置变量的答案。这是一个很好的例子。