在php里bd2什么意思,PSR-2 PHP三元语法中是否需要括号?
The PSR-2 standard明确省略对操作符的任何意见:
There are many elements of style and practice intentionally omitted by this guide. These include but are not limited to:
… Operators and assignment
由于括号用于对表达式进行分组,因此您的示例没有多大意义:
$error = ($error_status) ? 'Error' : 'No Error';
这里围绕括号中的单个变量没有任何意义.更复杂的情况可能会从括号中受益,但在大多数情况下,它们只是为了可读性.
更常见的模式是始终围绕整个三元表达式:
$error = ($error_status ? 'Error' : 'No Error');
这样做的主要动机是PHP中的三元运算符具有相当笨拙的关联性和优先级,因此在复杂表达式中使用它通常会产生意外/无用的结果.
常见的情况是字符串连接,例如:
$error = 'Status: ' . $error_status ? 'Error' : 'No Error';
这里连接(.运算符)实际上是在三元运算符之前求值的,因此条件总是非空字符串(以’Status:’开头),结果总是得到字符串Error’.
括号是必要的,以防止这种情况:
$error = 'Status: ' . ($error_status ? 'Error' : 'No Error');
当“堆叠”三元表达式以构成if-elseif链的等价时,存在类似的情况,因为PHP历史早期的错误意味着从左到右依次评估多个三元运算符,而不是在条件时快捷地整个假分支是真的.
the PHP manual的一个例子更清楚地解释了这一点:
// on first glance, the following appears to output 'true'
echo (true?'true':false?'t':'f');
// however, the actual output of the above is 't'
// this is because ternary expressions are evaluated from left to right
// the following is a more obvious version of the same code as above
echo ((true ? 'true' : false) ? 't' : 'f');
// here, you can see that the first expression is evaluated to 'true', which
// in turn evaluates to (bool)true, thus returning the true branch of the
// second ternary expression.
在php里bd2什么意思,PSR-2 PHP三元语法中是否需要括号?相关推荐
- java编程里的values怎么使用,详解Java编程中super关键字的用法
这篇文章主要介绍了Java编程中this与super关键字的用法,包括从内存结构方面分析super的作用域,需要的朋友可以参考下 通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程 ...
- 在中断程序里修改全局变量的童鞋注意啦~(C中的volatile作用 转载~)
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了.精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存 ...
- 量词逻辑量词里面的v表示?_知识表示能力问答中的人工智能量词(MCQ)
量词逻辑量词里面的v表示? 1) How many types of quantifiers are there that are used to represent knowledge? 3 typ ...
- 源码里没有configure_深入源码理解.NET Core中Startup的注册及运行
开发.NET Core应用,直接映入眼帘的就是Startup类和Program类,它们是.NET Core应用程序的起点.通过使用Startup,可以配置化处理所有向应用程序所做的请求的管道,同时也可 ...
- tp5讲一个值传到另外一个控制里_统计起源 第四讲:黑暗中诞生的天才——自由度与标准差...
费歇尔小时候有很严重的视力损伤,因此医生禁止他晚上在灯光下阅读.即使后来上学时,他的数学导师也在黑暗中教他数学,黑暗使人强大,长期在黑暗中脑补使得费歇尔形成了强大的几何能力.这也是为什么费歇尔可以很轻 ...
- 知乎里怎么看个人简介_怎么写简历中的自我评价?
真的不忍心再看到这么多像我一样的失足青年...所以必须要来说两句了. [自我评价]可以说是简历上最大的雷区了,绝大部分人都踩过,然后被炸死,见不到迷人的HR... ------------------ ...
- python里load什么意思_【python】json中load和loads区别
相同点 dump 和 dumps 都实现了序列化 load 和 loads 都实现反序列化 变量从内存中变成可存储或传输的过程称之为序列化 序列化是将对象状态转化为可保存或可传输格式的过程. 变量内容 ...
- 杰里AC695N开发详解汇总(持续更新中)
一.杰里695N系列开发快速入门 杰里695N系列(soundbox)之 0.0 开发环境搭建 杰里695N系列(soundbox)之 1.0 SDK快速入门(1) 杰里695N系列(soundbox ...
- 在中断程序里修改全局变量的童鞋注意啦~(C中的volatile作用 )
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了.精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存 ...
最新文章
- CMS 被废弃了,该怎么办呢?
- html 页面宽度和背景颜色,CSS:设置背景颜色为窗口宽度的50%
- 软件测试用例设计实用经验之谈
- uvalive5983(二分+dp)
- 小问题: windows组件调用失败,无法加载安装安装程序:Wbemupgd.dll
- 2021.08.24学习内容torch.utils.data.DataLoader以及CUDA与GPU的关系
- matlab矩阵的低秩分解,低秩分解的matlab代码看不懂,分解的两个矩阵在哪呀??...
- 【报告分享】2021年中国数字经济就业发展研究报告.pdf(附下载链接)
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)...
- 限制mysql资源使用率_MySQL--限制用户使用资源
- 05.第六章、进度管理
- phpstudy配置sg11
- 电脑x64和x86安装软件的区别讲解分享
- java-net-php-python-springboot办公自动化系统计算机毕业设计程序
- Qtum量子链研究院:Qtum Plasma MVP 技术详解
- 数据库不能读取也不能打开的解决办法
- SpringMVC中的文件上传与下载,json转换,及三大框架的整合
- linux系统执行.exe文件
- html 获取登录状态,登录后如何获取HTML代码?
- Linux/Centos: OpenSSL中文手册之EVP库详解
热门文章
- tcp_wrapper:简单的基于主机的访问控制工具
- shell编程中if []的用法注意
- HAProxy+Hive构建高可用数据挖掘集群
- 项目管理笔记(观念)
- 星辰小组——第一阶段评分+各小组的意见反馈
- 微信公众号开发 包括服务器配置、java web项目搭建、tomcat手动发布web项目、微信开发所需的url和token验证 2017.12.2...
- Oracle 11g数据库详细安装步骤图解
- ubuntu14操作系统chrome标签和书签乱码解决
- RBAC用户角色权限设计方案(转)
- Java请求参数检查,Java如何检查servlet请求中是否存在参数?