Php 什么是;或;你的意思是什么?

Php 什么是;或;你的意思是什么?,php,syntax,Php,Syntax,可能重复: 我看到一些PHP代码以我不熟悉的方式使用或。例如: fopen($site,"r") or die("Unable to connect to $site"); 这是否等于此| 为什么要使用此块而不是try catch块?什么会导致程序运行或die()?是,它等于|| 在这种情况下,它会显式停止页面的执行并打印错误消息。大部分情况下是这样,但 这两种情况不同的原因是什么 “and”和“or”运算符的变体 就是它们的运作方式不同 先例 请参见或等于|,但|比或具有更高的密度 参考:

可能重复:

我看到一些PHP代码以我不熟悉的方式使用
。例如:

fopen($site,"r") or die("Unable to connect to $site");
这是否等于此
|

为什么要使用此块而不是
try catch
块?什么会导致程序运行
或die()

是,它等于||


在这种情况下,它会显式停止页面的执行并打印错误消息。

大部分情况下是这样,但

这两种情况不同的原因是什么 “and”和“or”运算符的变体 就是它们的运作方式不同 先例


请参见
等于
|
,但
|
具有更高的密度

参考:


或在第一个命令失败时发生死亡

这类似于试捕,但这是更直接的方法

请注意,这是一个经典测试:

fopen($site,"r") or die("Unable to connect to $site");
只有当fopen($site,“r”)返回false时,才会运行测试的后半部分:“die('error')”

如果(a | | b)相同;仅当a返回false时才运行b

PHP中的Die与exit()相同;


完全停止当前脚本的执行,并打印出错误消息。

具有其他优先级。具体的语句是使用布尔运算符的小技巧。与常见的
if
-测试表达式类似,如果第一部分的计算结果为
false
,则仅执行第二部分。这意味着,如果
fopen()
没有失败,
die()

但是,
try catch
仅适用于异常,但
fopen()
不会抛出任何异常

今天,像这样的东西是“不太好”的风格。使用异常而不是硬终止

if (!($res = fopen($site, 'r'))) throw new Exception ("Reading of $site failed");

这是不平等的。。。它有一个不同的优先顺序…用枪指着你的头:打开文件,否则就死!(相关)你知道,我不认为这是重复的。这实际上是一个关于“表达式或死亡”是什么意思的问题。它与
try-catch
不同。与中的try-catch类似,它尝试第一个语句,如果为false,则执行第二个语句。如果为true,则不执行第二条语句或“catch”。我在评论海报上的问题“为什么你要用这个而不是试抓块?”当try/catch为on error时,这是布尔值。