> 백엔드 개발 > PHP 튜토리얼 > if($r != '.' && $r != '..')为何不能写成if($r != ('.'&&'..'))

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

WBOY
풀어 주다: 2016-06-06 20:17:51
원래의
1299명이 탐색했습니다.

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

回复内容:

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

没有简写的方式。

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

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

<code>in_array($r, ['.', '..']);</code>
로그인 후 복사

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

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿