Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 验证CodeIgniter中的计数\u all \u结果=1_Php_Codeigniter_Comparison Operators - Fatal编程技术网

Php 验证CodeIgniter中的计数\u all \u结果=1

Php 验证CodeIgniter中的计数\u all \u结果=1,php,codeigniter,comparison-operators,Php,Codeigniter,Comparison Operators,我试图获取当前用户会话(如果存在),然后将其与数据库进行比较,同时使用loggedIn值=1表示loggedIn,并计算存在与此where子句匹配的单行数。如果存在,则显示登录,否则,显示下面If{}else{}中显示的登录表单 我有一个具有以下功能的模型: function check_if_loggedin(){ #get user session id from db. $sess = $this->session->userdata('session_

我试图获取当前用户会话(如果存在),然后将其与数据库进行比较,同时使用loggedIn值=1表示loggedIn,并计算存在与此where子句匹配的单行数。如果存在,则显示登录,否则,显示下面If{}else{}中显示的登录表单

我有一个具有以下功能的模型:

function check_if_loggedin(){
    #get user session id from db.
        $sess = $this->session->userdata('session_id');
    #set numerical value of successfully logged in equal 1
        $loggedInSetSuccess = 1;
    #compare session id to match in db (can only have only 1 match)
        $sessionsDbCompare = $this->db->get_where('Client',array('session_id'=>$sess,'loggedIn'=>$loggedInSetSuccess));

    if($sessionsDbCompare->count_all_results() = 1) {
    # User has valid session(valid sessID+loggedIn=0, show welcome
        echo 'Logged in baby';
        # show account pref   
    }
    else{
      # user doesnt have both a valid session and loggedIn is set to 0, show login form
      echo 'login form here';
    }  
}

问题是-如果$sessionsDbCompare->count_all_results=1{my IDe警告我,我应该使用count_all_results==1还是count_all_results==1。抱歉,这有点新手,我想我有点困惑,因为count_all_results是一个函数。我确实理解类似于1==01的比较运算符。你应该使用它

count_all_results() == 1
你拥有它的方式是将1分配给它剩下的部分


IDE还担心count\u all\u结果可能返回false和0。这就是为什么它建议使用三个===,但不要担心。两个相等值将修复它。你应该使用这个

count_all_results() == 1
你拥有它的方式是将1分配给它剩下的部分

IDE还担心count_all_结果可能返回false和0。这就是为什么它建议使用三个===但不必担心。两个等号将修复这一行:

if($sessionsDbCompare->count_all_results() = 1) {
应该是:

if($sessionsDbCompare->count_all_results() == 1) {
这一行:

if($sessionsDbCompare->count_all_results() = 1) {
应该是:

if($sessionsDbCompare->count_all_results() == 1) {
您应该使用==使if语句看起来像:

if($sessionsDbCompare->count_all_results() == 1) { ... 
您始终可以使用var\u dump$sessionsDbCompare->count\u all\u results;或类似方法来检查返回的值…

您应该使用==这样if语句看起来像:

if($sessionsDbCompare->count_all_results() == 1) { ... 
您可以始终使用var\u dump$sessionsDbCompare->count\u all\u results;或类似方法来检查返回的值…

您应该使用 $this->db->count\u all 而不是$this->db->count\u all\u results

您应该使用 $this->db->count\u all
与$this->db->count_不同,all_results

=是赋值运算符,而==&==是比较运算符。在您的情况下,需要比较这两个值。好吧,很酷。但是在这种情况下,哪一个更好===或==?为什么?您可以在这里使用任意一个,因为Codeigniter在返回之前将结果强制转换为int。在比较nu时使用===更好mbers.=是赋值运算符,而==&==是比较运算符。在您的情况下,您需要比较这两个值。好的,很酷。但是对于这种情况,哪一个更好===或==?为什么?您可以在这里使用任意一个,因为Codeigniter在返回之前将结果强制转换为int。在比较数字时使用===更好。感谢var_dump错误checking-必须记住这一点。感谢Salih0vicX!感谢var_dump错误检查-必须记住这一点。感谢Salih0vicX!