这么联系做网站推广,传智播客网页平面设计,手机制作网页用什么软件,摄影师个人网站模板PHP-您使用哪种编码风格的三元运算符#xff1f;如果很短#xff0c;我将其放在一行中。 最近#xff0c;我一直在将这种样式用于较长或嵌套的三元运算符表达式。 一个人为的例子#xff1a;$value ( $a $b )? true value # 1: ( $a $c )? true value # 2: false valu…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:11Z77 votes我尽量不要使用三元运算符来编写嵌套条件。 它缺乏可读性并且比使用条件语句没有任何额外的价值。仅当它可以放在一行上并且它的含义很清楚时我才使用它$value ($a 0) ? minus : plus;Tomalak answered 2020-01-03T00:15:35Z24 votes就个人而言我只在三行运算符适合一行时使用。 如果需要跨度那么该是个好时机了if else if elsebiozinc answered 2020-01-03T00:15:55Z15 votes我有时会使用的一种样式因为没有被提及所以我提出来的样式是这样的$result ($x y)? foo: bar;..但通常仅将它们全部放在一行上会使其过长。 我发现将 ? :全部排列起来看起来更整洁。nickf answered 2020-01-03T00:16:20Z14 votesPHP嵌套三元运算符的行为有所不同。此语法通过了以下所有测试。基于[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:58Z10 votes三元运算符是编写简单if语句的有效方法。 它们不应嵌套或难以阅读。 切记您只编写一次软件但被读取100次。 它应该比阅读容易阅读。Rick Kierner answered 2020-01-03T00:17:18Z4 votes我倾向于将条件放在括号中(a b) 10Guillaume Gervais answered 2020-01-03T00:17:38Z2 votes我不同意这种普遍看法。 我的条件运算符风格有点像Imran。 如果整齐地放在一行上我将其放在一行上。 如果它不能完全适合一行我会破坏它但是我只使用一个制表符(4个空格我将VS设置为为制表符插入空格)作为缩进。 我不会立即跳转到if-else因为很多时候条件运算符在上下文上更有意义。 (但是如果在上下文上没有意义那么我就不使用它。)另外我不嵌套条件运算符。 到那时我确实觉得太难读了是时候使用较为详细的if656-68568550645574657样式了。John Rudy answered 2020-01-03T00:18:03Z1 votes“人为设计的示例”是我如何缩进除了我会从左边距缩进而不是基于(或上面一行中的任何内容)。对于三元批评者-可读性是重点。 如果您不认为它使代码更具可读性请不要使用它。 但是我发现至少在某些时候情况恰恰相反。ysth answered 2020-01-03T00:18:28Z1 votes三元条件可以使代码更简洁更优雅最重要的是可以帮助您将重点放在正确的事情上避免重复。 考虑使用它们但不要因此而使代码的可读性降低。 在VB.NET中before refactoringIf x 0 Then If-Then-Else puts emphasis on flow controllabel NoneElselabel Foo.getLabel(x) If-Then-Else forces repeat of assignment lineEnd Ifafter refactoringlabel If(x 0, None, Foo.getLabel(x)) ternary If puts emphasis on assignment请注意“可读性较差”与“我不习惯看到它”不同。Patrick Szalapski answered 2020-01-03T00:18:53Z0 votes我不使用它。 在我看来它总是想节省空间并输入源代码而期望小型源更高效的编译代码。我觉得它根本不可读但这主要是因为我从未使用过它。Tim answered 2020-01-03T00:19:18Z0 votes我倾向于根本不使用三元运算符因为我发现..否则更具可读性。SmacL answered 2020-01-03T00:19:38Z0 votes伊姆兰您已经用漂亮的格式格式化了。 但是当您嵌套两个以上时三元运算符的确会变得不可读。 if-else块可能会给您带来更高层次的可理解嵌套。 除此之外使用函数或表驱动的编程。Yuval F answered 2020-01-03T00:19:58Z0 votes$foo (isset($bar)) ? $bar : default;answered 2020-01-03T00:20:13Z0 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