php false 和 0的关系

false == 0, false !== 0,

问题:

php文档中给出 socket_create() 创建失败return false

但为什么这句话是正确的

if (($resource = socket_create(....)) < 0 ){
    throw new Exception("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
}

创建错误, $resource 应该是 false, 抛出了异常, 问题就是 false<0成立了 为什么?

我是小白, 自己想不明白就想问一下。

阅读 3.4k
2 个回答

0和false不全等,很明显0是int类型,false是布尔类型
0 == false //这个条件成立,值相等
0 === false //这个不成立,类型和值都相等,才成立

这样写法应该是有问题的:随便测试了一个

if (($resource = socket_create('1', SOCK_STREAM, SOL_TCP)) < 0) {
    throw new Exception("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
}

发现没进if语句里

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