php - if($r != '.' && $r != '..')为何不能写成if($r != ('.'&&'..'))
巴扎黑
巴扎黑 2017-04-10 16:50:25
[PHP讨论组]

如题,请问问什么?有其他的简写方式吗

巴扎黑
巴扎黑

全部回复(2)
伊谢尔伦
in_array($r, ['.', '..']);

两个值情况下还看不出来。如果与多个值比较,这么写绝对比一大堆!=&&简洁。

天蓬老师

没有简写的方式。

在强类型语言里,&&要求两边的操作数一定要是Boolean型,在弱类型语言里面,&& 会试图把两边的操作数转换成Boolean型(但是有些返回值并不是Boolean类型的)。因此从类型上来说这两者都是不等价的。

从语言规定的语法来讲似乎也不应该规定这样的写法,因为后面这种形式有着实在的意义。如果规定为等价,那么就需要多规定一条额外的语法。而这种规定似乎又不会带来明显的好处。尤其是在弱类型语言里后面这种写法也有其中的意义。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号