我是PHP的新手。
在PHP中有3个条件结构
在这3个中哪一个最能提高程序性能?
请告诉我我们需要优先选择IF或SWITCH或TERNARY以及为什么?
它如何根据条件提高性能以及执行时间是多少?
答案 0 :(得分:3)
使用any没有性能问题。 这取决于使用的情况。 如果条件不是很复杂,则使用三元运算符
LIKE: -
$num = $num == 1?'yes':'no'
最好使用三元运算符来减小代码大小,但对于更复杂的条件,它可能会变得混乱,因此,如果
大多数情况下,当条件相同时,应使用开关。 喜欢
if($num == 1 || $num == 2 || $num == 3 || $num == 5 || $num == 7 || $num == 11 ) {
// do something
}
在这种情况下如果应该用switch替换,因为它会使代码更清晰
答案 1 :(得分:-1)
我做了一个小测试,看起来三元运算符总是比常规if语句慢一点。差异非常小,因此在宏观方案中它应该会对您的应用程序性能产生很大影响。
// small data
$data['test'] = 1;
$start = microtime();
for ($i = 0; $i < 1000000; $i++) {
if (true) {
$tmp = $data['test'];
}
}
microtime() - $start; // 0.529772
$start = microtime();
for ($i = 0; $i < 1000000; $i++) {
$tmp = true ? $data['test'] : false;
}
microtime() - $start; // 0.591775
// for 'large' data
$data['test'] = [];
for ($i = 0; $i < 1000000; $i++) {
$data['test'][] = $i;
}
$start = microtime();
for ($i = 0; $i < 1000000; $i++) {
if (true) {
$tmp = $data['test'];
}
}
microtime() - $start; // 0.181477
$start = microtime();
for ($i = 0; $i < 1000000; $i++) {
$tmp = true ? $data['test'] : false;
}
microtime() - $start; // 0.277483