if($r != '.' && $r != '..')为何不能写成if($r != ('.'&&'..'))
程序员文章站
2022-05-23 23:12:49
...
如题,请问问什么?有其他的简写方式吗
回复内容:
如题,请问问什么?有其他的简写方式吗
没有简写的方式。
在强类型语言里,&&
要求两边的操作数一定要是Boolean型,在弱类型语言里面,&&
会试图把两边的操作数转换成Boolean型(但是有些返回值并不是Boolean类型的)。因此从类型上来说这两者都是不等价的。
从语言规定的语法来讲似乎也不应该规定这样的写法,因为后面这种形式有着实在的意义。如果规定为等价,那么就需要多规定一条额外的语法。而这种规定似乎又不会带来明显的好处。尤其是在弱类型语言里后面这种写法也有其中的意义。
in_array($r, ['.', '..']);
两个值情况下还看不出来。如果与多个值比较,这么写绝对比一大堆!=
和&&
简洁。
推荐阅读
-
华硕R457U笔记本怎么样? 华硕R457U开箱测评
-
Win2008 R2安装.NET Framework 4的windows6.1-KB958488-V6001-x64出现灾难性故障解决方法
-
win2008 r2 web服务器IIS的安装与基本设置
-
爱普生R330墨水键长亮黄灯怎么办?
-
台电x70r平板电脑怎么设置截屏方式?
-
HP Gen8 服务器安装2008 R2 帮助手册
-
Dell R710 raid磁盘阵列配置手册(大图版)
-
Ryzen 7-1700对比酷睿i7-6800K谁更强?R7-1700与i7-6800K区别对比详细评测
-
惠普Hp DL380 GEN9 UEFI模式安装win2008 r2的方法
-
R3 1300X对比R5 1400哪个好 R3-1300X与R5-1400区别对比评测