【发布时间】:2016-11-30 02:36:27
【问题描述】:
每个人都知道今天的技术成本很低,我们中的许多人并不真正关心它。所以,看看这段代码:
方法#1
$Obj = new Obj();
if (!empty($val1)) {
$Obj->setVal1($val1);
}
if (!empty($val2)) {
$Obj->setVal2($val2);
}
if (!empty($val3)) {
$Obj->setVal3($val3);
}
if (!empty($valN)) {
$Obj->setValN($valN);
}
方法 #2
if (!empty($var1) && !empty($var2) && !empty($var3) && !empty($varN)) {
$Obj = new Obj();
if (!empty($val1)) {
$Obj->setVal1($val1);
}
if (!empty($val2)) {
$Obj->setVal2($val2);
}
if (!empty($val3)) {
$Obj->setVal3($val3);
}
if (!empty($valN)) {
$Obj->setValN($valN);
}
}
在第一个示例中,如果不存在任何值,我们将创建对象并离开,在第二个示例中,我们首先检查值是否存在且不为空,然后创建对象并设置值。从您的角度来看,哪一个是性能级别的最佳解决方案?你会在你的代码上写哪一个?
注意: N 不是无限的
【问题讨论】:
-
你为什么不做一个性能分析,自己看看?
-
它们在功能上并不相同。这是一个如此微的优化,我不确定我是否担心。
-
第二种方法是测试
!empty的所有 4 个变量两次。如果您尝试优化,为什么要这样做?? -
这些“性能”改进只是浪费开发者的生命,仅此而已。你不应该在这上面浪费你的时间,收益是值得怀疑的,即使它存在 - 它是如此之小以至于不值得花更多的文字在它上面。
-
好的,感谢大家的时间和回答我现在明白了
标签: php performance oop php-7