正确使用? 操作者

在我的项目中,我有一个处理所有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碰巧(错过)解析它的方式。

如果你觉得有帮助,也许用JetBrains提出一张票?

我将把整个问题的第二部分作为 - 正如我在上面的评论中指出的那样 - 这是一个单独的问题,应该相应地提出。 也许在Code Review上。 如果你确实把它转移到那里......确保交叉回到这里:-)

链接地址: http://www.djcxy.com/p/34519.html

上一篇: Correct usage of ?? operator

下一篇: Fail to install enterprise in house distribution App on iOS Device first time