【问题标题】:How to check if $data variable is set with Codeigniter?如何检查 $data 变量是否使用 Codeigniter 设置?
【发布时间】:2015-03-13 01:22:24
【问题描述】:

当我设置$data['say_something'] = 'Hello'; 之类的数据并使用$this->load->view('my_page', $data); 将其发送到视图时,如果设置了变量$say_something,我如何检查视图?这个有什么Codeigniter功能吗?

【问题讨论】:

  • 你不需要任何 codeigniter 函数来做到这一点,isset 就足够了

标签: php codeigniter


【解决方案1】:

这里与 codeigniter 无关。这是基本的PHP

if(isset($say_something)){
   echo $say_something;
}
else{
   echo "variable is not there";
}

【讨论】:

  • 谢谢。我只是认为 isset() 可能有一个替代的 Codeigniter 函数。
  • 请注意,-isset() 将与 $this->input->post('variable_name') 变量一起引发错误。请参阅下面的答案
【解决方案2】:

isset 不适用于 $this->input->post('variable_name') 变量:

CodeIgniter 带有帮助方法,可让您获取 POST, GET, COOKIESERVER 项目。

使用提供的方法而不是直接获取项目($_POST['something']) 的主要优点是这些方法将检查项目是否已设置,如果未设置则返回 NULL。

这让您可以方便地使用数据,而无需先测试项目是否存在。换句话说,通常你可能会这样做:

$something = isset($_POST['something']) ? $_POST['something'] : NULL;

使用 CodeIgniter 的内置方法,您可以简单地做到这一点:

$something = $this->input->post('something');

参考:https://www.codeigniter.com/user_guide/libraries/input.html

【讨论】:

    【解决方案3】:

    如果它被设置,但为空或错误类型的数据,你可能还想检查空($foo),以这种方式:

    if(isset($say_something) && !empty($say_something)) {...

    【讨论】:

      【解决方案4】:

      如果您想查看发送到视图的所有变量,请尝试使用:

      var_dump($this->_ci_cached_vars);
      

      【讨论】:

        【解决方案5】:

        使用isset()函数

        isset() 函数检查是否设置了变量,如果设置了则返回true,否则返回false

        您可以将它与条件语句一起使用

         if(isset($foo))
           {//foo is set}
           else
           {//foo is not set}
        

        来源

        http://php.net/manual/en/function.isset.php

        【讨论】:

          【解决方案6】:

          我认为你可以使用 var_dump($data)

          【讨论】:

            猜你喜欢
            • 2020-04-07
            • 1970-01-01
            • 2014-09-15
            • 1970-01-01
            • 1970-01-01
            • 2018-05-24
            • 2011-04-05
            • 1970-01-01
            相关资源
            最近更新 更多