在错误的背景下“或”做了什么?

时间:2013-08-12 20:13:50

标签: php error-handling

阅读this question我想在使用mysqli

时复制@Your Common Sense的错误检查
$query="INSERT INTO testtable VALUES (23,44,56)";
$stmt_test->prepare($query);
$stmt_test->execute() or trigger_error($stmt_test->error); 
$stmt_test->close(); 

or如何运作?其中example的另一个用途是

$fh = fopen($myFile, 'w') or die("can't open file");

与使用if语句有什么不同,是否应该使用?

2 个答案:

答案 0 :(得分:2)

如果第一个语句返回false,则执行第二个语句。而已。

答案 1 :(得分:0)

这通常是在编程语言中如何评估布尔“或”表达式。如果你有一个涉及函数的声明:

if (a() or b()) { ... }

然后PHP得知,如果a()返回true,则无需评估第二个函数,因为无论第二部分的结果如何,总体结果都将为真。我们可以将此技巧用作简单的if机制:

(operation_that_might_fail() or report_error());

在这里,我删除了条款周围的if。这将像以前一样进行评估 - 除了OR两者的结果然后被抛弃,因为我们不需要对它做任何事情。

为此,operation_that_might_fail()必须在成功时返回布尔值true,否则返回false。碰巧的是,许多PHP函数都是这样做的,所以我们经常可以使用这种方法。

旁注:虽然声明or可以说更清晰,但PHP程序员倾向于选择运算符||。同样地,and会按照它所说的做,但&&更常见。