php 三目格式,PHP-您使用哪种编码风格的三元运算符?

PHP-您使用哪种编码风格的三元运算符?

如果很短,我将其放在一行中。 最近,我一直在将这种样式用于较长或嵌套的三元运算符表达式。 一个人为的例子:

$value = ( $a == $b )

? 'true value # 1'

: ( $a == $c )

? 'true value # 2'

: 'false value';

您个人使用哪种样式,或者最易读?

编辑:(关于何时使用三元运算符)

我通常避免使用2个以上级别的三元运算符。 当我在PHP模板脚本中回显变量时,我倾向于2级深三元运算符而不是2级if-else。

15个解决方案

87 votes

通常应避免使用三元运算符,但是这种形式可以很容易理解:

result = (foo == bar) ? result1 :

(foo == baz) ? result2 :

(foo == qux) ? result3 :

(foo == quux) ? result4 :

fail_result;

这样,将条件和结果保持在同一行上,就可以轻松浏览并了解正在发生的事情。

Simon Howard answered 2020-01-03T00:15:11Z

77 votes

我尽量不要使用三元运算符来编写嵌套条件。 它缺乏可读性,并且比使用条件语句没有任何额外的价值。

仅当它可以放在一行上并且它的含义很清楚时,我才使用它:

$value = ($a < 0) ? 'minus' : 'plus';

Tomalak answered 2020-01-03T00:15:35Z

24 votes

就个人而言,我只在三行运算符适合一行时使用。 如果需要跨度,那么该是个好时机了

if else if else

biozinc answered 2020-01-03T00:15:55Z

15 votes

我有时会使用的一种样式,因为没有被提及,所以我提出来的样式是这样的:

$result = ($x == y)

? "foo"

: "bar";

..但通常仅将它们全部放在一行上会使其过长。 我发现将= ? :全部排列起来看起来更整洁。

nickf answered 2020-01-03T00:16:20Z

14 votes

PHP嵌套三元运算符的行为有所不同。

此语法通过了以下所有测试。基于[http://deadlytechnology.com/web-development-tips/php-ternary-syntax/]

$myvar = ($x == $y)

?(($x == $z)?'both':'foo')

:(($x == $z)?'bar':'none');

参见:[http://au.php.net/ternary]

示例#3“非显而易见的三元行为”说明了以下原因在PHP中不起作用的原因。

$x = 1;

$y = 2;

$z = 3;

$myvar = ($x == $y)

? "foo"

: ($x == $z)

? "bar"

: "none";

$myvar == 'none'; // Good

$x = 1;

$y = 2;

$z = 1;

$myvar = ($x == $y) ? "foo" : ($x == $z) ? "bar" : "none";

$myvar == 'bar'; // Good

$x = 1;

$y = 1;

$z = 3;

$myvar = ($x == $y) ? "foo" : ($x == $z) ? "bar" : "none";

$myvar == 'bar'; // Bad!

$x = 1;

$y = 1;

$z = 1;

$myvar = ($x == $y) ? "foo" : ($x == $z) ? "bar" : "none";

$myvar == 'bar'; // Bad!

Chris Jacob answered 2020-01-03T00:16:58Z

10 votes

三元运算符是编写简单if语句的有效方法。 它们不应嵌套或难以阅读。 切记:您只编写一次软件,但被读取100次。 它应该比阅读容易阅读。

Rick Kierner answered 2020-01-03T00:17:18Z

4 votes

我倾向于将条件放在括号中:(a == b)? 1:0

Guillaume Gervais answered 2020-01-03T00:17:38Z

2 votes

我不同意这种普遍看法。 我的条件运算符风格有点像Imran。 如果整齐地放在一行上,我将其放在一行上。 如果它不能完全适合一行,我会破坏它,但是我只使用一个制表符(4个空格;我将VS设置为为制表符插入空格)作为缩进。 我不会立即跳转到if-else,因为很多时候条件运算符在上下文上更有意义。 (但是,如果在上下文上没有意义,那么我就不使用它。)

另外,我不嵌套条件运算符。 到那时,我确实觉得太难读了,是时候使用较为详细的if656-68568550645574657样式了。

John Rudy answered 2020-01-03T00:18:03Z

1 votes

“人为设计的示例”是我如何缩进,除了我会从左边距缩进,而不是基于(或上面一行中的任何内容)。

对于三元批评者-可读性是重点。 如果您不认为它使代码更具可读性,请不要使用它。 但是我发现至少在某些时候情况恰恰相反。

ysth answered 2020-01-03T00:18:28Z

1 votes

三元条件可以使代码更简洁,更优雅,最重要的是,可以帮助您将重点放在正确的事情上,避免重复。 考虑使用它们,但不要因此而使代码的可读性降低。 在VB.NET中:

'before refactoring

If x = 0 Then ' If-Then-Else puts emphasis on flow control

label = "None"

Else

label = Foo.getLabel(x) ' If-Then-Else forces repeat of assignment line

End If

'after refactoring

label = If(x = 0, "None", Foo.getLabel(x)) ' ternary If puts emphasis on assignment

请注意,“可读性较差”与“我不习惯看到它”不同。

Patrick Szalapski answered 2020-01-03T00:18:53Z

0 votes

我不使用它。 在我看来,它总是想节省空间并输入源代码,而期望小型源==更高效的编译代码。

我觉得它根本不可读,但这主要是因为我从未使用过它。

Tim answered 2020-01-03T00:19:18Z

0 votes

我倾向于根本不使用三元运算符,因为我发现..否则更具可读性。

SmacL answered 2020-01-03T00:19:38Z

0 votes

伊姆兰,您已经用漂亮的格式格式化了。 但是,当您嵌套两个以上时,三元运算符的确会变得不可读。 if-else块可能会给您带来更高层次的可理解嵌套。 除此之外,使用函数或表驱动的编程。

Yuval F answered 2020-01-03T00:19:58Z

0 votes

$foo = (isset($bar)) ? $bar : 'default';

answered 2020-01-03T00:20:13Z

0 votes

我个人仅将其用于分配变量(在Java中),例如:

String var = (obj == null) ? "not set" : obj.toString();

和(其他示例)在使用不允许使用空参数的函数时,例如:

String val; [...]

int var = (val == null) ? 0 : Integer.parseInt(val);

Vinze answered 2020-01-03T00:20:38Z

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

extractCSS – 帮助你从 HTML 中快速分离出 CSS

extractCSS 是一个免费的基于 Web 的应用程序&#xff0c;能够从 HTML 中提取风格相关的信息&#xff0c;包括 id、class 和内联样式&#xff0c;而且输出可以定制&#xff08;缩进和括号的用法&#xff09;。该工具非常有用&#xff0c;当我们快速创建一个使用了内联样式的 HT…

php项目安装器,php项目安装器程序源码,php通用安装程序

php项目安装器程序源码,php通用安装程序一个安装器的源码&#xff0c;最简单的看一下emlog 也可以&#xff01;文件目录结构index.php 程序首页│ ├─conf 安装后配置文件目录├─data    目录写入测试目录└─install 安装程序目录 │ index.php   安装程…

7zip File: How to Uncompress 7z files on Ubuntu, Debian, Fedora

转&#xff1a;http://www.thegeekstuff.com/2010/04/7z-7zip-7za-file-compression/ Question: How do I uncompress a *.7z file ( 7zip file ) in UNIX / Linux ? Can you explain with a simple example? Answer: Use 7za command to unzip a 7z file ( 7zip file ) on U…

php找不到邮件类,SMTP无法使用php邮件程序类

我有两个帐户&#xff1a;no-replyweddinggrabs.comno-replyappovio.com和传入POP3&#xff1a;pop.secureserver.net(995)传出SMTP&#xff1a;smtpout.secureserver.net(80,3535,25,465)这些工作使用电子邮件客户端,如Thunderbird,post-box等,但不使用php-mailer&#xff1a;…

Python开发环境Wing IDE 5.0测试第八版发布

Wing IDE是著名的Python开发工具&#xff0c;是Wingware公司的主要产品。从1999年起&#xff0c;Wingware公司便开始专注于Python开发设计。Wing IDE在十几年的发展中&#xff0c;不管完善。其强大设计理念包括&#xff1a;编辑工具丰富&#xff0c;编译测试版权一体化&#xf…

PHP5比PHP4,php4和php5的配置异同比较

技术文章配置php4或者php5的过程中&#xff0c;php4&#xff0c;5的配置的步骤大致一样的&#xff0c;但是配置内容有一些差别。在LINUX等环境下编译&#xff0c;一般来说&#xff0c;只要编译的选项正确&#xff0c;配置也就正确了&#xff1b;在windows配置则需要注意以下不同…

matlab文件序号超出511,求教一段matlab的代码 - 数学 - 小木虫 - 学术 科研 互动社区...

不知楼主说的没法求出优化值&#xff0c;是什么意思。是报错还是怎么。我也是刚接触优化&#xff0c;觉得楼主的错误可能是在&#xff1a;主函数里 A[-1;1];的括号中间应该用逗号&#xff0c;而不是分号。即改为A[-1,1];我对你的程序做了一点改动&#xff0c;如下&#xff1a;f…

系统地学习JavaScript

入门 学会DIVCSS布局使用DIVCSS布局标准网页&#xff0c;可以使前端XHTML代码更少、结构更清晰&#xff0c;这有利于轻松用JavaScript操作DOM&#xff0c;比如&#xff0c;要展示一个3 行3列的列表&#xff0c;如果用传统的表格布局&#xff0c;现在要你用JavaScript动态生成这…

matlab this指针,C++ this指针(直戳本质)

为了能让大家看清 this 指针的本质&#xff0c;我们会先讲一点 C 的历史——C 程序到C程序的翻译过程。C 程序到C程序的翻译C 是在C语言的基础上发展而来的&#xff0c;第一个 C 的编译器实际上是将 C 程序翻译成C语言程序&#xff0c;然后再用C语言编译器进行编译。C语言没有类…

WPF自定义控件 —— 装饰器

摘自&#xff1a;http://www.cnblogs.com/Curry/archive/2009/09/16/1567757.html 顾名思义就是装饰用的&#xff0c;也就是说不改变原有的控件结构&#xff0c;但可以为控件添加一些新的功能&#xff0c;或是为控件的显示外观增加些东西。如MSDN中的例子&#xff1a; 本来Text…

matlab填充点面,求大神指点绘制空间内散点图的包络面,,,散点程序如下

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼E[];a0;b0;c0;for Zp-50:2:50for Xp-200:2:200for Yp-200:2:200P1_1[cos(b)*cos(c) -cos(b)*sin(c) sin(b) Xp;sin(a)*sin(b)*cos(c)cos(a)*sin(c) cos(a)*cos(c)-sin(a)*sin(b)*sin(c) -sin(a)*cos(b) Yp;sin(a)*sin(c)-cos(a)*si…

对微软Microsoft Dynamics CRM 的认识

MS CRM的认识 技术层面&#xff1a; MS CRM使用了当前最为流行的Web Service作为数据交互的手段&#xff0c;这给我们的二次开发和系统级的集成带来了无可比拟的方便性、易用性。我们不用关心如何去访问CRM数据库&#xff0c;只需要关心我们要访问CRM中的哪一个对象&#xff0c…

yii+php+当前目录,Yii常用路径方法总结

Yii框架中的一些常见的路径方法的使用方法总结。在控制器添加CSS文件或JavaScript文件&#xff1a;Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl./css/my.css);Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl./css/m…

Java递归函数

原文&#xff1a;http://blog.163.com/zhuliqing_001/blog/static/293340982010101046597/ 1 、递归函数的定义&#xff1a; 答&#xff1a;递归函数即自调用函数&#xff0c;在函数体内直接或间接的调用自己&#xff0c;即函数的嵌套是函数本身。 2 、递归方式&#xff1a;递归…

php的ddd,在MVC框架中实现DDD – PHP

在mvc中,模型是一个层,它包含所有的域业务逻辑.在域驱动设计中,业务逻辑可以分为各种构建块.在域驱动设计域模型中.A domain model is a system of abstractions that describes selectedaspects of a sphere of knowledge,influence or activity (a domain).The model can the…

Netty Associated -- ByteBuf

ByteBuf ByteBuf是Netty的Server与Client之间通信的数据传输载体.他提供了一个byte数组(byte[])的抽象视图 buffer创建 我们推荐通过一个Unpooled的帮助方法来创建新的buffer而不是通过调用独立的构造器来创建 随机访问索引 就像普通的原声字节数组一样, ByteBuf使用零基坐标(z…

php 根号2计算过程,根号2以及π的计算--关于无理数的畅想

[导读]这两篇文章里&#xff0c;我发现不需要那些老师教的范式也能很好地理解那些现代概念&#xff0c;并且理解的更深刻。这两篇文章里&#xff0c;我发现不需要那些老师教的范式也能很好地理解那些现代概念&#xff0c;并且理解的更深刻。我一般假设自己从来没有学过微积分&a…

oracle对象权限 函数,oracle的系统和对象权限

alter any cluster 修改任意簇的权限alter any index 修改任意索引的权限alter any role 修改任意角色的权限alter any sequence 修改任意序列的权限alter any snapshot 修改任意快照的权限alter any table 修改任意表的权限alter any trigger 修改任意触发器的权限alter clust…

批处理程序实例

一、交互界面设计 没啥说的&#xff0c;看看高手设计的菜单界面吧&#xff1a;echo offclstitle 终极多功能修复:menuclscolor 0Aecho.echo echo 请选择要进行的操作&#xff0c;然后按回车echo echo.echo 1.网络修复及上网相关设置,修复IE,自定义屏蔽网站echo.echo 2.病毒专杀…

oracle 10g dsg,【ORACLE】relink oracle 10g 数据库

通常要迁移一个数据库&#xff0c;我们会使用1 冷备份&#xff0c;整个数据库迁移&#xff0c;2 rman duplicate 功能进行复制到本机或者复制到异机&#xff0c;前面两种都必须先在目标库上安装软件。这里测试另外一种方法&#xff1a;对于单实例数据库&#xff0c;复制整个ora…