PHP“或”语法

2021/01/05 03:21 · php ·  · 0评论

我已经看过很多:$fp = fopen($filepath, "w") or die();
但是我似乎找不到关于“或”语法的任何真实文档。
它的作用很明显,但是我可以在任何地方使用它吗?并且必须紧随其后
die()吗?or当您可以使用类似的东西时,有什么需要注意的地方

if (file_exists($filepath))
   $fp = fopen($filepath,"r");
else
   myErrMessage();

我知道这似乎是一个愚蠢的问题,但是我找不到任何硬性规定。谢谢。

它是一个逻辑运算符,可以在任何逻辑表达式中使用。

http://php.net/manual/zh/language.operators.logical.php

让我们这样说:

$result = first() || second();

将评估为:

if (first()) {
    $result = true;
} elseif (second()) {
    $result = true;
} else {
    $result = false;
} 

而:

$result = first() or second();

将评估为:

if ($result = first()) {
    // nothing
} else {
    second();
}

换句话说,您可以考虑:

$result = first() || second();

$result = (first() || second());

和:

$result = first() or second();

成为:

($result = first()) || second();

这只是优先事项。

这是一个巧妙的技巧,它继承自某些PHP的前辈,基于这样的事实:如果第一个表达式返回true,PHP不会巧妙地对OR之后的任何表达式求值:

function a($ret){
    echo "FOO";
    return $ret;
}
function b($ret){
    echo "BAR";
    return $ret;
}

$result = (a(true) OR b(true));

只打印出FOO,意味着甚至没有执行b()。

or只是进行布尔比较。

fopen()可以将返回的内容视为布尔值,因为FALSE如果失败则返回(如果没有失败则返回另一个值)。

如果失败,该语句将在右边求值,因此将die()调用该函数

基本上,它的意思是“如果第一个命令失败,则执行第二个命令”。在您的示例中,如果PHP无法打开文件,它将终止脚本(die())。

PHP中的“或”就像C一样的语法(||)

<?php 
if( ($a==1 || $a==2) && ($b==3 || $b==4) && ($c==5 || $c==6) ) { 
     //do that something here. 
} 
?>

您所谈论的“或”只是一个把戏,因为以下状态:

例:

$result = mysql_query('SELECT foo FROM bar', $db) or die('Query failed: ' . mysql_error($db));

由于以下几个原因,or或die()技巧是一个非常差的选择:

  1. 向用户显示错误消息不是一种很好的方法。
  2. 您无法以任何方式捕获该错误。
  3. 您无法记录该错误。
  4. 您无法控制是否将其输出到屏幕。可以在开发环境中执行此操作,但肯定不能在生产环境中执行此操作。

    5.它阻止您进行任何形式的清理。它只是突然结束了脚本。

参考:[在此处输入链接描述] [1]

[1]:http//www.phpfreaks.com/blog/or-die-must-dieenter code here

可以像使用||一样使用它 作为逻辑或http://php.net/manual/zh/language.operators.logical.php

它可以用作||但没有相同的优先级:http :
//www.php.net/manual/en/language.operators.precedence.php

运算符的优先级指定它如何“紧密”地将两个表达式绑定在一起。例如,在表达式1 + 5 * 3中,答案是16而不是18,因为乘法(“ *”)运算符的优先级高于加法(“ +”)运算符。如有必要,可以使用括号来强制优先级。例如:(1 + 5)* 3等于18。

本文地址:http://php.askforanswer.com/phphuoyufa.html
文章标签: ,   ,   ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!