我正在使用isset()
来检查$this->statarr['stat1']['stat2'][$var1])
。我只包括2但我还有更多。
if (isset($this->statarr['stat1']['stat2'][$var1])) {
$value .= 'var 1: ' . $this->statarr['stat1']['stat2'][$var1];
}
if (isset($this->statarr['stat1']['stat2'][$var2])) {
$value .= 'var 2: ' . $this->statarr['stat1']['stat2'][$var2];
}
...
多次(10次或更多次)调用$this->statarr
属性是否很昂贵?我应该拨打$this->statarr['stat1']['stat2']
一次并将其存储在$statarr
中,然后进行其他检查,或者它在效率方面没有区别吗?
$statarr = $this->statarr['stat1']['stat2'];
if (isset($statarr[$var1])) {
$value .= 'var 1: ' . $statarr[$var1];
}
if (isset($statarr[$var2])) {
$value .= 'var 2: ' . $statarr[$var2];
}
...
另一件事是我如何确保设置$this->statarr['stat1']['stat2']
本身?
答案 0 :(得分:2)
如果您担心代码的效率,可以使用Xdebug等分析工具对其进行分析,http://xdebug.org/
答案 1 :(得分:2)
您可以使用xdebug检查性能。总的来说,根据我的经验,这些并不是“大”的交易破坏者。文件和数据库操作往往要贵得多。
就我个人而言,我会将它标准化(为了可读性和可维护性):
function conditionaljoin($array,$keys)
{
$result = "";
foreach ($keys as $key)
if (isset($array[$key])
{
$result .= $array[$key]
}
return $result;
}
if (isset($this->['stat1']['stat2'])
$value = conditionaljoin($this->['stat1']['stat2'], array($var1, $var2);
}