“do something OR DIE()”在PHP中是如何工作的?

2022-08-30 07:26:24

我正在编写一个php应用程序来访问MySQL数据库,在教程中,它说了一些形式

mysql_connect($host, $user, $pass) or die("could not connect");

PHP如何知道函数失败,以便它运行模具部分?我想我是在问它的“或”部分是如何工作的。我想我以前没见过它。


答案 1

如果第一条语句返回 ,则整个语句必须是,因此第二部分永远不会被执行。truetrue

例如:

$x = 5;
true or $x++;
echo $x;  // 5

false or $x++;
echo $x; // 6

因此,如果查询不成功,它将评估语句并结束脚本。die()


答案 2

PHP的像C的||一样工作(顺便说一句,PHP也支持它 - 或者只是看起来更好,并且具有不同的运算符优先级 - 请参阅此页面)。

它被称为短路运算符,因为它一旦有足够的信息来确定最终值,它将跳过任何评估。

在你的示例中,如果返回 TRUE,则 PHP 已经知道,无论评估什么,整个语句都将计算为 TRUE,因此不会被计算。mysql_connect()die()die()

如果返回 FALSE,PHP 不知道整个语句的计算结果是否为 TRUE 或 FALSE,因此它继续并尝试评估 - 在进程中结束脚本。mysql_connect()die()

这只是一个很好的技巧,利用了方式工作方式。


推荐