【发布时间】:2008-10-03 20:16:49
【问题描述】:
如果我深陷于循环嵌套中,我想知道其中哪一个更有效:
if (!isset($array[$key])) $array[$key] = $val;
或
$array[$key] = $val;
就可读代码而言,第二种形式更受欢迎。实际上,名称更长,数组是多维的。所以第一个表单在我的程序中看起来很粗糙。
但我想知道第二种形式是否会更慢。由于代码是程序中最常执行的函数之一,我想使用更快的形式。
一般来说,这段代码会以相同的“$key”值执行多次。所以在大多数情况下 $array[$key] 已经被设置了,并且 isset() 将返回 FALSE。
为那些担心我将不相同的代码视为相同的人澄清一下:就程序的这一部分而言,$val 是一个常量。直到运行时才知道,但它是在程序的早期设置的,在这里不会改变。所以这两种形式产生相同的结果。这是到达 $val 最方便的地方。
【问题讨论】:
标签: php optimization readability