在 JavaScript 中,我习惯使用以下后备评估
var width = parseInt(e.style.width) || e.offsetWidth() || 480
meaning width
将获得最后一个非零(非空...)值
但是,在 php 中我不能写
$a = $_GET['id'] || 1;
我必须这样写
$a = $_GET['id']?$_GET['id']:1;
这很糟糕,因为$_GET['id']
被评估两次
有什么建议么?
如果您有 PHP 5.3,您可以简单地执行以下操作:
$a = $_GET['id'] ?: 1;
根据 PHP 手册:
从 PHP 5.3 开始,可以省略三元运算符的中间部分。如果 expr1 计算结果为 TRUE,则表达式 expr1 ?: expr3 返回 expr1,否则返回 expr3。
如果您没有 PHP 5.3 或更高版本,则必须使用 Sarfraz(或更好的是 delphist)的建议。但是,在较大的应用程序中,我倾向于将请求变量包装为可以在检索请求的函数的参数中指定默认值的方式。这样做的优点是它更干净(更容易理解),并且如果 $_GET 变量中不存在索引,它不会生成警告,因为我可以使用类似的东西isset
检查数组索引是否存在。我最终得到类似的结果:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)