gpt4 book ai didi

php - ??的正确用法运算符(operator)

转载 作者:可可西里 更新时间:2023-11-01 12:57:27 25 4
gpt4 key购买 nike

在我的项目中,我有一个处理所有 AJAX POST 请求的 ajax.php。它获取命令,验证所有必需的参数是否存在并将其传递给相关类。

我看到了新的'??'运算符并开始像这样验证 POST 参数,

$name = $_POST['name'] ?? die('{"result":0, "data":"name not provided"}');
$state = $_POST['state'] ?? die('{"result":0, "data":"state not provided"}');

我觉得比那个好看

$name = isset($_POST['blah']) ? $_POST['blah'] : die('{"result":0, "data":"blah not provided"}');  

我已经部署并确认它可以正常工作,但 Intellij 在第一次使用后对无法访问的代码发出嘶嘶声。我想知道我是否在滥用语法并且可能会被修复,或者 Intellij 是否不在球上。

我总是对不良做法偏执,所以想知道您对语法用法以及整个 ajax.php 的看法。有一个专门用于基本验证帖子参数是否存在的页面不好吗? (它不验证实际数据,只是验证它数据)。我也想知道我是否应该将 ajax.php 拆分成一条路径来尝试拆分它?你会考虑做类似的事情吗?

foreach (['name', 'state'] AS $arg) {
$$arg = $_POST[$arg] ?? die("{\"result\":0, \"data\":\"$arg not provided\"}");
}

然后它可以返回处理后的值或在丢失时抛出异常/死亡,或者您更喜欢每行都有每个参数?

最佳答案

这只是 Intellij 中的一个小故障。我对 PHPStorm 10 也有同样的看法。您可以轻松地对其进行测试以证明您的代码工作如您所愿,这就是布丁中的证明,而不是某些 IDE 发生的方式(miss- ) 解析它。

如果您想提供帮助,也许可以向 JetBrains 提出请求?

我将把你的整个问题的第二部分保留为 - 正如我在上面的评论中指出的那样 - 它是一个单独的问题,应该相应地提出。可能在 Code Review 结束.如果你确实将它移到那里......请确保在此处交叉引用:-)

关于php - ??的正确用法运算符(operator),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37691421/

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