调用方法两次或创建临时变量?

时间:2014-02-20 17:23:47

标签: php

我想知道这个效率:

我有一个大约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?哪个最好?

2 个答案:

答案 0 :(得分:0)

我只是使用正则表达式去除结束:

$html .= '<p>' . preg_replace('/Apply$/', '', $description->toString());

也就是说,如果$description->toString()无论你在哪里使用它都会给出相同的输出,那么绝对没有理由多次调用它,而一个临时变量将是效率最高的

也没有理由将$hanging保存到变量中,因为您只使用一次。

答案 1 :(得分:0)

一般来说,这取决于,这是一种权衡。

在变量中保留计算值会占用内存,并冒着包含陈旧数据的风险。

重新计算这个值可能会很慢,或者以其他方式计算成本很高。

所以这是决定哪个资源对您最重要的问题。

然而,在这种情况下,临时变量是如此短暂,它绝对值得使用。