kei*_*ant 12 php optimization static-variables
我想知道我是否可以使用静态变量进行优化:
public function Bar() {
static $i = moderatelyExpensiveFunctionCall();
if ($i) {
return something();
} else {
return somethingElse();
}
}
Run Code Online (Sandbox Code Playgroud)
我知道,一旦$i初始化,它将不会被连续调用的那行代码所改变Bar().我认为这意味着moderatelyExpensiveFunctionCall()每次打电话都不会评估,但我想肯定地知道.
一旦PHP看到一个已初始化的静态变量,它是否会跳过该行代码?换句话说,如果我打了很多电话Bar(),或者我在浪费时间,这会优化我的执行时间吗?
Ken*_*ins 17
我发现更容易做类似下面的代码.这样,缓存是全局完成的,而不是每次执行函数.
function moderatelyExpensiveFunctionCall()
{
static $output = NULL;
if( is_null( $output ) ) {
//set $output
}
return $output;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3923 次 |
| 最近记录: |