PHP 中是否存在更短的 if 语句?
是否有可能以某种方式将其重写得更短?
if (isset($_POST['pic_action'])){
$pic_action=$_POST['pic_action'];
}
else {
$pic_action=0;
}
我在某处看到过但忘记了...:/
顺便说一句,如果您愿意,请也解释一下您的代码!
谢谢
Is it possible to rewrite this to be shorter somehow?
if (isset($_POST['pic_action'])){
$pic_action=$_POST['pic_action'];
}
else {
$pic_action=0;
}
I have seen it somewhere but forgot... :/
BTW, please explain your code also if you like!
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
您可以使用 条件运算符
? :
:条件运算符表达式
expr1 ? expr2 : 如果
计算为expr1
的计算返回值为 true,则 expr3expr2
的返回值;否则,表达式的计算结果为expr3
的计算返回值。因此,如果isset($_POST['pic_action'])
计算结果为 true,则整个表达式的计算结果为$_POST['pic_action']< /code> ,否则为
0
的评估值。简而言之:如果
isset($_POST['pic_action'])
为 true,$pic_action
将保存$_POST['pic_action']< 的值/code> 和
0
否则。You could use the conditional operator
?:
:The conditional operator expression
expr1 ? expr2 : expr3
evaluates to the return value ofexpr2
if the evaluated return value ofexpr1
is true; otherwise the expression evaluates to the evaluated return value ofexpr3
. So ifisset($_POST['pic_action'])
evaluates to true, the whole expression evaluates to the evaluated value of$_POST['pic_action']
and to the evaluated value of0
otherwise.So in short: if
isset($_POST['pic_action'])
is true,$pic_action
will hold the value of$_POST['pic_action']
and0
otherwise.Gumbo的回答可能是最好的方法。
也可以写成:
Gumbo's answer is probably the best way.
It can also be written as:
上面的行需要下面定义的
array_get
函数。来源 Kohana 的Arr
类。非常小且通用的功能。可用于所有数组,例如$_GET
。The line above requires the
array_get
function defined below. Source from Kohana'sArr
class. Very small and generic function. Can be used on all arrays, e.g.$_GET
.更长,但可重用:
或者您可以让 QueryPost 函数在您使用时执行某种形式的验证。
Longer, but reusable:
Or you could have the QueryPost function do a form of validation while you're at it.
你可以这样做:
You can do: