【发布时间】:2021-06-18 21:43:50
【问题描述】:
我有两个函数 - 第一个函数很复杂,加载大约需要 15 秒,因为它从第三方获取数据。第二个是正常功能。为了说明这就是我所拥有的
<?php
class ComplexFunctions{
public function complexFunctionOne($x){
// do something
}
}
?>
<?php
function SimpleFunction($y, $z){
if($y){
// if $y is true use variable z
}else{
//if $y is false don't use variable z
}
return $a;
}
$cf = new ComplexFunctions();
$input_y = 'Y';
$input_y = 'Z';
$output = SimpleFunction($input_y, $cf->complexFunctionOne($input_y);
?>
只有当第一个变量$y 为真时,我才需要运行复杂函数$y。如果不是,我不想运行它。
不幸的是,无论 $y 是真还是假 - $cf->complexFunctionOne($input_y) 在任何情况下仍然会被加载。这可能会花费很多无用的时间来处理我不想要的东西,除非它被专门调用。
一种解决方案可能是在简单函数中调用$cf->complexFunctionOne($input_y),但是,我手上有很多复杂的函数,例如complexFunctionTwo,我只想根据情况使用,而不是使用 Switch/Case 语句。
【问题讨论】:
-
考虑检查this thread。