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;
<!doctype html> <html> <head> <meta charset="utf-8"> <title>demo</title> </head> <bod...
if($_SERVER['REQUEST_METHOD'] == 'POST') { echo('This is post '); } elseif ($_SERVER['...
最近在公司开发一个新的项目假设项目域名是a.com,需要接入b.com的单点登陆系统。(1).首先我们会在a.com的登陆页面用iframe引入b.com来显示登陆界面,实际上登陆验证操作都是在b.com上面(2).当b.com验证通过,会在前端ajax请求a.com的回调地址,这个回调地址目的就是...
众所周知MyISAM引擎不支持事务,但是我只是知道不支持事务,并未测试具体的表现是什么,测试代码如下:try { //开启事务 Db::startTrans(); &...
文章篇幅较长,如果不喜欢看文章的,此处抛出韩顺丰老师的位运算视频,韩老师应该是全网讲php位运算符最详细的一个老师了。链接:https://pan.baidu.com/s/14xj7er8eVSUcJ-jYXyA0GA 提取码:731m 链接:https://pan.baidu.com...
场景:模拟验证码发送。仅做代码演示。(1).创建一个验证码发送接口sendCaptcha/** * 发送验证码 */ public function sendCaptcha() { //外部参数(获...