gpt4 book ai didi

PHP 智能 || (OR) 运算符就像 JavaScript 中一样

转载 作者:行者123 更新时间:2023-11-28 12:34:32 25 4
gpt4 key购买 nike

在 PHP 中使用这样的结构是否安全:


$文件名 = $文件['文件名1'] || $file['文件名2'];

我有 JS 背景,使用起来很安全,因为我们可以信任 true/false 值。然而,我的同事习惯于利用 isset 进行构造:


$文件名 = '文件名'. (isset($file['filename2']) ? '2' : '1');

对我来说这似乎有点冗长。

我找到了an article on phabricator.com它概述了 PHP 中不同的 true/falsey 值并提供了此表:

VALUE             if()        empty()     isset()

null false true false
0 false true true
0.0 false true true
"0" false true true
"" false true true
false false true true
array() false true true
EVERYTHING ELSE true false true

如果有人就此事向我提供见解,我将不胜感激。

最佳答案

第一件事:

$filename = $file['filename1'] || $file['filename2'];  //incorrect syntax

应该是

$filename = $file['filename1'] || $filename = $file['filename2'];//depending on the condition
<小时/>

第二件事:

isset($file['filename2']) ? '2' : '1';

这是取代冗长代码的简写。

相同的代码可以写成:

if(isset($file['filename2']){
$filename='filename2';
}else{
$filename='filename1';
}

所以,一行可以写4行代码。这并不冗长。这就是智能编码。

<小时/>

第三件事:

这是实现这一目标的理想方式。

return isset($file['filename2'])?$file['filename2']:$file['filename1'];

理解示例:

echo (age>18)?"where is my beer":"you are Underage!!!"; //codition:true:false

关于PHP 智能 || (OR) 运算符就像 JavaScript 中一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18531707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com