看下面的这种写法:
<?php
!$var && $var = ‘你好!’;
$error or die(‘Error!’);
?>
&& 为 同时真 运算符.
A && B, 只有当 A 和 B 都为真的时候,这句才是真
PHP 会先判断 A 是否为真,若 A 为真的话 就会继续判断
B.
所以,当 A 为真,B 是一个语句的时候, B 就会运行.
同理,当 A 为假的时候,这句一定是假,就没有必要往后判断了,此时,B 就不会运行.
|| or 则不同
A or B, 只要 A 或者 B 中有一个是真,这句就是真
PHP 先判断 A 是否为真,若 A 为真的话, 此句一定是真,没有必要再去判断
B
所以当 A 为假的时候,PHP 会继续判断 B 是不是真,才能得到这句的结果
此是,B 如果是一个语句就会运行.
还记得入门时候那数据连接那句吗?现在应该很好懂为什么加个 OR 了吧?
mysql_connect($host,$user,$pwd) or die(‘Mysql Error!’);
如果连接失败,前面就是假,后面的 DIE 就会运行咯!
再看下面的例子:
$var = ”;
!$var && echo “空的!”;
!$var && print “空的!”;
哪个可以成功执行呢?
知道为什么吗?
这里附上 echo 和 print 的区别吧:
echo 和 print 的区别
PHP 中 echo 和 print 的功能基本相同,但是两者之间也有细微差别。在 PHP 代码中可以把 print 作为一个普通函数来使用,例如执行下面的代码后变量$res 的值将为 1。
1 | <li>$ret = print \”Hello World\”; </li> |
这意味着 print 可用在一些复杂的表达式中,而 echo 则不行。同样,在代码中 echo 语句的运行速度要略微快于 print 语句,因为 echo 语句不要求返回任何数值。