关于php中mysql_connect($host,$user,$pass) or die(mysql_error())写法的疑问
一般在连接数据库的时候,语句都会这样写:$link=mysql_connect($host,$user,$pass)ordie(mysql_error());关于这条语句...
一般在连接数据库的时候,语句都会这样写:
$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引擎就无法判断它的真假,所以这条逻辑表达式就是错误的。
谁还有更好的见解,希望能拿出来共享。大家多多交流! 展开
$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引擎就无法判断它的真假,所以这条逻辑表达式就是错误的。
谁还有更好的见解,希望能拿出来共享。大家多多交流! 展开
4个回答
展开全部
为什么我把die()语句换成别的就不行了呢?比如换成echo 就会报错!
=================
那是因为or是逻辑运算符,不能直接跟echo输出语句.你可以换成其他的语句,或函数.
function demo(){
echo "exit...";
exit();
}
$line = 'aaaaa';
$line == "aaaa" or demo();
=================
那是因为or是逻辑运算符,不能直接跟echo输出语句.你可以换成其他的语句,或函数.
function demo(){
echo "exit...";
exit();
}
$line = 'aaaaa';
$line == "aaaa" or demo();
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
die是输出并且退出程序
echo只是输出
如果在边接出错的情况下退出,下面的程序则不会运行
正如jqqwww所说
echo只是输出
如果在边接出错的情况下退出,下面的程序则不会运行
正如jqqwww所说
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以认为,or 是一个特殊的语法噻。后面只能跟die;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询