PHP的三元运算符通常在简洁与清晰度之间起关键作用。简要回顾:PHP三元运算符使您可以编写单行比较,从而替换如下代码:
<?phpif (isset($value)) {
$output = $value;} else {
$output = 'No value set.';}有了这个:
<?php$output = isset($value) ? $value : 'No value set.';
第二个代码示例显然更简单,并且在许多情况下(尽管当然不是全部),它仍然保留了足够的清晰度以成为有价值的工具。关于三元运算符是否以牺牲简洁为代价而牺牲了清晰度,存在很多争论。我们只说它是一种工具,并且像其他任何工具一样,它可以被很好地使用或不好使用。
常规三元运算符的语法为(expression) ? value if truthy : value if falsy。表达式也可以只是一个变量,它将测试该变量是真还是假:
<?php$output = $value ? $value : 'No value set.';
问题是,上面的示例既常见又令人讨厌,重复出现:不得不写$value两次这样的感觉简直是错。
好吧,我今天发现,PHP 5.3为此三元运算符的使用引入了偶数语法。您可以在docs上了解更多信息,但这是我们可以使以上示例更加简洁的方法:
<?php$output = $value ?: 'No value set.';
如果这看起来很熟悉,那是因为:这正是PHP缩短其他运算符的方式,例如缩短了它:
<?php$value = $value . $other_value;
对此:
<?php$value .= $other_value;
上家公司开发医院挂号系统,系统采用GBK编码。ajax发送的中文用户名让PHP保存为cookie出现乱码的解决方案。1.Javascript变量var user=document.getElementById('user').innerText; user=escape(u...
<?php //设置Cookies数组 setcookie('Datatype[a]', '1'); setcookie('Datatype[b]', '2'); set...
<?PHP $a=0.5*100; if(is_int($a)){ echo'int'; } else{ echo'not int'; } ...
本篇文章不是讲解如何用.net开发自己的dll然后PHP通过com调用。主要记录PHP官方支持的DOTNET 基本语法如下:$obj = new DOTNET("assembly", "classname")a...
项目中使用服务来执行webservice,由于对方系统api不稳定,经常导致服务崩溃,只能重启,一个月差不多要重启一次。初期的解决办法是捕获异常,然后continue掉。<?php try { $url = 'http...
重构框架的时候想要考虑支持下cli模式,于是参考了thinkphp的底层。/** * 获取应用根目录 * @return string */ public static function getRootP...