php中or, |, ||, 和and,&, &&之间的作用及区别

首先这些关键词和运算符都是做关系运算的,先贴一些代码片段看看他们在同样的条件下会输出什么。

$a = 6 or 0 ;

var_dump( $a ); //int(6)

$a = 6 | 0 ;

var_dump( $a ); //int(6)

$a = 6 || 0 ;

var_dump( $a ); //bool(true)

$a = 6 and 0 ;

var_dump( $a ); //int(6)

$a = 6 & 0 ;

var_dump( $a ); //int(0)

$a = 6 && 0 ;
var_dump( $a ); //bool(false)

从代码可以看出or等同与|,and等同于&。
他们的作用是一致的,但因为语义化的原因他们用的地方并不是相同的,|和&一般会用在if之中。or和and用在一些权限控制中。

defined ( 'IN') or exit( 'Access Denied' );

比如上面这句代码,检查IN这个常量是否存在,如果不存在就退出不住执行下面代码。

||和&&判断后会返回一个布尔值,这种用法是目前最常用的,|和&在我看过的代码中并不多见,甚至有点程序员都不知道有这种用法的存在,and和or偶尔能见到,但多在权限控制或更加语义化的场景中看到。

阅读更多
文章标签: php 代码
个人分类: PHP
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭