一般在连接数据库的时候,语句都会这样写:$link=mysql_connect($host,$user,$pass)ordie(mysql_error());关于这条语句,我是这么理解的:php会认为后边的是一个逻辑表达式。依据逻辑...
一般在连接数据库的时候,语句都会这样写:
$link = mysql_connect($host,$user,$pass) or die(mysql_error());
关于这条语句,我是这么理解的:php会认为后边的是一个逻辑表达式。依据逻辑表达式的特点,如果前一条件为真(即成功连接上了数据库),那么就不会计算后边的表达式是否为真。如果前边的为假(即连接数据库失败),那么就要计算后边的表达式,就会执行die()语句。但问题是,为什么我把die()语句换成别的就不行了呢?比如换成echo 就会报错!
谁来解释一下啊!!
对JovenShao说:这条语句的意思我很清楚,并不用在重复的解释。请明白的说一下为什么用echo语句不行。
对jqqwww 说:我知道下边的语句都会出错。但是现在不是sql语句出错的问题。二是解释器会直接报错,说遇到不期望的echo。
我可以把我想应用到的地方告诉大家:我有很多数据库要连接,如果这个数据库不存在则继续连接下一个执行操作。所以我想写成这样: mysql_connect($host,$user,$pass) or continue;
但是php引擎会报错!
array_sum兄说的还是很有道理的,虽然我感觉不完全对。我现在的理解是这样的:
echo、print、continue这类的语句都是不能跟的,因为他们根本不是函数(你去查php手册就会有这样的话:echo() is not actually a function (it is a language construct)。意思是说:echo并不是真正意义上的函数,它只是一个语言构造),不是函数,就没有任何的返回值。没有返回值php引擎就无法判断它的真假,所以这条逻辑表达式就是错误的。
谁还有更好的见解,希望能拿出来共享。大家多多交流!
展开