false == 0, false !== 0,

问题:

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

但为什么这句话是正确的

if (($resource = socket_create(....)) < 0 ){
    throw new Exception("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
}
登录后复制
登录后复制

创建错误, $resource 应该是 false, 抛出了异常, 问题就是 false

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

回复内容:

false == 0, false !== 0,

问题:

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

但为什么这句话是正确的

if (($resource = socket_create(....)) < 0 ){
    throw new Exception("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
}
登录后复制
登录后复制

创建错误, $resource 应该是 false, 抛出了异常, 问题就是 false

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

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

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

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

发现没进if语句里

09-15 19:22