thinkphp中if(!$user)的一个小问题

各位大神下午好!今天我在学习thinkphp框架的时候遇到了一个问题,请看代码:

class TestController extends Controller
{
    public function login()
    {
        $username = 111;
        $user = M("user")->where(array("username" => $username))->find(); //获取用户信息
        if (!user) {
            echo "该用户不存在";
        } else {
            var_dump($user);
        }
    }
}

假设要查询一个用户名为111的用户(数据库中无该用户)
如果用户不存在if(!user),那么echo "该用户不存在";
如果用户存在,那么var_dump($user);

执行上面的代码后,结果如下:

clipboard.png

疑问:
既然显示得结果是null,那就应该在if (!user) 的时候就执行 echo "该用户不存在";了啊?为什么却执行了else里面的代码呢?
先谢谢各位大神了!

阅读 3.1k
3 个回答

验证返回值是否为空是否存在的方式应该是 isset()empty()

楼上说得对

补充题主少了dollar

 if (!$user) {
            echo "该用户不存在";
        }

加油,遇到问题不可怕,就怕不敢面对和有效方法解决。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题