Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中使用or?_Php - Fatal编程技术网

如何在PHP中使用or?

如何在PHP中使用or?,php,Php,在PHP中,使用$key可以得到什么?如果脚本没有收到参数键,它会给出错误吗 一般来说,如何在PHP中使用or 这段代码来自其他人,我正在对它进行建模,因为如果没有收到参数,它会抛出500个错误。通常,我使用@DaOgre建议的解决方案。但我更感兴趣的是错误,以及在PHP中使用或的正确方法是什么。这不是或在PHP中,但请尝试: $key = $_REQUEST[ 'key' ] or $key = false; 正如上面MichaelBerkowski的评论中提到的,实现所需功能的正确方法可能

在PHP中,使用$key可以得到什么?如果脚本没有收到参数键,它会给出错误吗

一般来说,如何在PHP中使用or


这段代码来自其他人,我正在对它进行建模,因为如果没有收到参数,它会抛出500个错误。通常,我使用@DaOgre建议的解决方案。但我更感兴趣的是错误,以及在PHP中使用或的正确方法是什么。

这不是或在PHP中,但请尝试:

$key = $_REQUEST[ 'key' ] or $key = false;

正如上面MichaelBerkowski的评论中提到的,实现所需功能的正确方法可能是使用三元运算符

 $key = $_REQUEST[ 'key' ] || $key = false;
这将检查是否设置了键,如果设置了,则返回第一个值$\u REQUEST['key'],如果未设置,则返回fase


现在,您可以对$key执行任何其他逻辑检查。请记住,您应该真正清理通过$\u请求从中获取的任何传入数据。

此构造利用了or运算符短路的事实,这意味着只有当左侧部分的计算结果为true时,才会对右侧部分进行计算。因此,它相当于:

<snip>
$key = isset($_REQUEST['key']) ? $_REQUEST['key'] : false;
<snip>
或者,使用三元运算符:

if($_REQUEST['key']) {
    $key = $_REQUEST['key'];
} else {
    $key = false;
}
这意味着,如果未设置$_REQUEST['key']或其计算结果为false,$_REQUEST['key']的值为false,则$key将设置为false


但是,请注意,在PHP中有一系列计算结果为false的东西,包括:false本身、null、整数0、float 0.0、空字符串、字符串“0”、带零元素的数组以及一些其他东西,因此如果您试图检查是否设置了$\u REQUEST['key'],请使用isset,或者更好,array\u key\u exists函数。

您看过文档了吗??您是否有使用JavaScript或Ruby之类的语言的经验,这些语言具有var=maybefalse | | |“default”等连接运算符?PHP目前还没有那么整洁的东西,但它是针对PHP7提出的。是的,如果$_请求['key']不存在,PHP将发出E_通知未定义的索引'key',通常必须使用isset处理,如$key=isset$_请求['key']$_请求['key']:false@MichaelBerkowski事实是,如果我不发送参数键,它会给我一个500错误。我假设500错误是E_通知。@Connor E_通知不应该生成500,这通常是一个致命错误或运行时错误。但在PHP中,500表示在错误日志中查找。错误将在那里详细说明。在开发和测试代码时,总是打开PHP的错误显示并打开错误报告。然后,您将提前捕获所有通知和警告。在脚本的顶部,错误报告全部;ini设置“显示错误”,1;或者在开发机器上的php.ini中类似地启用它们。php同时具有| |和或运算符,它们在功能上相似,但优先级不同@MichaelBerkowski在SQL查询中我知道您可以使用,但在这个过程脚本中也可以使用,文档批准它是一个逻辑运算符,或者在PHP中是一个真正的运算符,类似于但不完全是| |的替代品。它列在上面的链接中。我同意这一点,我做了与你推荐的相同的事情。实际上,我正在修改某人的代码,我看到了这个。我只是好奇这段代码到底做了什么,我猜如果没有收到参数,PHP会给出一个错误。
$key = $_REQUEST['key'] ? $_REQUEST['key'] : false;