小技巧两个感叹号(两个!)连用

两个!是为了把非0值转换成1,而0值还是0。(如下表)

  !!

0

1 0
1 0 1
10 0 1

php持术或其他语言中我们经常会看到感叹号的用法,有一定程序语言基础的朋友都知道单个感叹号的作用是取反的意思,也就是取当前结果的反面,如:

1
2
3
4

<?php
$a=true;
var_dump!$a);
?>

$a原来是true取反后$a就变成false了,这种用法在程序中经常见到,但是双感叹号的用法可能就少多了.其实双感叹号也就相当于程序语言中的三元运算$a?$b:$c),如

1
2
3
4
5
6
7
8

<?php
$a=true;
if!!$a){
  echo ‘ok’;
}else{
  echo ‘error’;
}
?>

!!$a返回的是布尔值true或false),有的朋友可能会问为什么要这么用,直接用常规的方法做不一样吗?其实是一样的,但是作为程序员必须宽泛的了解程序的各种写法,不致于别人写的程序自己看不懂.呵呵,个人看法!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注