fab*_*rik 1 php performance dry return-value
鉴于这种丑陋的方法:
public function convert_cell_value( $val, $type )
{
if($type == 'String')
{
return $val;
}
elseif($type == 'Number')
{
if($val - intval($val) > 0)
{
return $val;
}
else
{
return intval($val);
}
}
else
{
return $val;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我的100亿美元的问题是:当我应该返回值(不是在这种方法中,而是任何其他类似的这样)来应用DRY原则并追求性能.或者:我对性能的想法出了问题,当我立即返回某些值时,它与它没有任何关系?
额外的问题:是否有更简单的技巧来获得小数?
if($val - intval($val) > 0)
{
return $val;
}
Run Code Online (Sandbox Code Playgroud)
感谢您宝贵的时间,fabrik
您可以将方法逻辑简化为:
public function convert_cell_value( $val, $type )
{
if ($type === 'Number' && ($ret = intval($val)) == $val) {
return $ret;
}
return $val;
}
Run Code Online (Sandbox Code Playgroud)
或者,如果要添加更多类型,请使用switch:
public function convert_cell_value( $val, $type )
{
switch ($type) {
case 'Number':
if (($ret = intval($val)) == $val) {
return $ret;
}
case 'String':
default:
return $val;
}
}
Run Code Online (Sandbox Code Playgroud)
你也可以只使用一个return和更换return $ret由$val = $ret返回正确的价值.