当前位置: 代码迷 >> 综合 >> PHPnbsp;ORnbsp;nbsp;语句
  详细解决方案

PHPnbsp;ORnbsp;nbsp;语句

热度:81   发布时间:2024-01-18 12:09:49.0
mysql_connect('locahost','root','') or die('数据库连接失败');

这个问题我也想过很多次,忘了是哪次得到了让自己非常满意的答案,现在就把我认为的理由分享给大家

之所以 用 or 可以达到,当函数错误后,执行or后面的函数是因为:
1.逻辑运算的运算顺序是从左向右
2.or运算符的左结合性
3.or运算中,如果运算时有值为真了,则整个表达式为真,后面不需要运算

终合上面三个因素,当or左侧函数运行正常(返回非假值),则不会执行后面的函数
这里利用了or的这个特性,将die(终止并输出函数)用于此处,巧妙的实现了函数异常而报错的功能

根据上面的分析,想到
如果左侧函数就是返回假的函数,或者无返回值的函数,应该也是执行后面的函数

mysql_connect()执行错误,并不是这个函数本身执行错误了,如果是它本身执行错误是
PHP 的系统错误
它仅仅是返回了一个假值而已

顺便说一下在PHP中的假值都有哪些,除了这些都是真值
0 false array() null '' ""
零 假 空数组 NULL 空字符串
应该还有空对象,但不知道怎么表示

如果有疏漏,大家补充

似乎我说的还不够多,还有的地方需要再说一下。
使用die是为了终止程序,并输出错误,一般在我们学习的时候会使用这种方法,但在具体项目中很少这样用。
因为项目中即使报错,也不想使用白屏黑字去报错,都希望使用项目本身标准的报错页去报告
那么在or 的后面,很多人会使用自定义函数(方法)来报错、以及记日志等操作。
给个例子大家玩玩,这个例子也说明了print是有返回值的
[php]
<?php
function test(){
echo "0";
return false;
}

test() or print('1') or print('2');
?>
[/php]
  相关解决方案