每天进步一点点:多用括号没毛病

in #cn6 years ago

这两天调一段简单的PHP代码,为了更好的处理请求呢,我打算让脚本同时支持POST和GET请求。


(图源 :pixabay)

为了达成这个目的,我写了如下代码,就是串联两个问号表达式:

$user="";
$user=isset($_POST["user"])?trim($_POST["user"]):isset($_GET["user"])?trim($_GET["user"]):"123";

然后进行测试,直接访问页面,$user为123,没错。POST方式,提交oflyhigh,等等,为何显示为空值呢?GET方式提交oflyhigh,一切正常。

我苦思不得其解,最后想来想去,只能归咎到问号表达式的处理方式以及运算优先级上边去。比如上述表达式,我期望是先判断POST,然后POST为空去判断GET,不过看来它并不是像我想象的那样处理的,并且视乎把我第二个问号表达式拆开处理,先判断GET,如果存在则赋值,再判断第一个问号表达式。

总之乱得一团糟,不过不去研究语言的具体逻辑啥的了,太麻烦了,我有括号大法啊,管他神马优先级,一括解千愁。

$user="";
$user=isset($_POST["user"])?trim($_POST["user"]):(isset($_GET["user"])?trim($_GET["user"]):"123");

把后边的表达式整个括上,一切正常。这么简单的方法就能解决问题,我却死磕半天,是不是傻?😭

对了,我记得wordpress里接收变量的地方写得挺好的,不过忘记咋写的,也懒得去找了,就先这么将就用吧。反正我的程序也很简单,没啥风险。

Sort:  

自己和自己糾結的樂趣!

Posted using Partiko Android

跟 Bash 一个样,一个标点符号玩死人

Coin Marketplace

STEEM 0.24
TRX 0.25
JST 0.039
BTC 96247.25
ETH 3349.36
USDT 1.00
SBD 3.28