在我的项目中,我有一个处理所有
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\"}"); }
然后可以返回已处理的值,或者如果丢失则抛出异常/ die,或者您希望每行都有一个参数?
这只是Intellij的一个小故障.我对PHPStorm 10也是一样的.你可以轻松地测试它,以证明你的代码按照你的预期运行,这是布丁中的证据,而不是某些IDE碰巧(错过)解析它的方式.
如果您觉得有帮助,也许可以通过JetBrains提高票价?
我将把你整个问题的第二部分留在 – 正如我在上面的评论中指出的那样 – 这是一个单独的问题,应该相应地提出.并且可能在Code Review结束.如果你确实在那里转移…确保在这里交叉ref 原文链接:https://www.f2er.com/php/134007.html