php:$a = $b OR $a = $c vs.三元

我需要将第二个变量的值分配给第三个变量,如果第一个变量是(bool)false或未定义,则需要使用第二个变量的值.

我通常使用三元表示法这样做:

$foobar = ($some_prefix_and_some_variable_name) ? $some_prefix_and_some_variable_name : $bar ; 

但是,如果$foo变量名称很长,有时这不是很漂亮,因为它需要在这种表示法中重复.

我现在的问题是,使用这种表示法是否同样好:

$foobar = $some_prefix_and_some_variable_name OR $foobar = $bar;

这个符号可以与三元版本互换吗?

解决方法:

因为$foobar = $foo OR $foobar = $bar;评估如下:

将foo分配给foobar.
*那里有价值吗?
*如果没有,请指定foobar吧.

而另一个则评估为:

foo有价值吗?
*若是,请指定foobar = foo
*否则指定foobar = bar

在第一个例子中,如果!foo你要分配两次,如果foo它可以更快.在第二个示例中,您只需设置一次总值.我打赌虽然速度差异可以忽略不计.

这里更大的问题是可读性.如果5.3短符号不可用,那么我仍然会使用三元符号,只是因为其他程序员所期望的.

就此而言,使用传统的三元语法可以节省更多的时间和金钱,只因为当人们看到你的代码时他们不会问自己,WTF?

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...