我想知道这个效率:
我有一个大约200行的csv文件,我使用一个类来过滤/分解csv并得到我想要的位。它每天都被缓存。
我发现许多描述(每个最多可达500个字符)都有一个悬而未决的字眼"应用"它需要切断。
认为在我的对象上多次调用toString()
是不好的做法,我创建了一个临时变量:$UJM_desc
(此代码在循环中)
// mad hanging 'Apply' in `description` very often, cut it off
$UJM_desc = $description->toString();
$hanging = substr($UJM_desc, -5);
if($hanging == "Apply")
$UJM_desc = substr($UJM_desc, 0 , -5);
$html .= '<p>' . $UJM_desc ;
但本来可以简单地调用$description->toString()
几次,我知道有可能用三元组来简化这个,但是,我仍然冻结了这一刻,并且我想问。
调用方法两次或使用temp var?哪个最好?
答案 0 :(得分:0)
我只是使用正则表达式去除结束:
$html .= '<p>' . preg_replace('/Apply$/', '', $description->toString());
也就是说,如果$description->toString()
无论你在哪里使用它都会给出相同的输出,那么绝对没有理由多次调用它,而一个临时变量将是效率最高的。
也没有理由将$hanging
保存到变量中,因为您只使用一次。
答案 1 :(得分:0)
一般来说,这取决于,这是一种权衡。
在变量中保留计算值会占用内存,并冒着包含陈旧数据的风险。
重新计算这个值可能会很慢,或者以其他方式计算成本很高。
所以这是决定哪个资源对您最重要的问题。
然而,在这种情况下,临时变量是如此短暂,它绝对值得使用。