首頁 > 後端開發 > php教程 > if($r != '.' && $r != '..')为何不能写成if($r != ('.'&&'..'))

if($r != '.' && $r != '..')为何不能写成if($r != ('.'&&'..'))

WBOY
發布: 2016-06-06 20:17:51
原創
1297 人瀏覽過

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

回复内容:

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

没有简写的方式。

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

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

<code>in_array($r, ['.', '..']);</code>
登入後複製

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

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板