由于 PHP 在字符串操作和输出中平等对待它们,我想知道最佳实践是什么,分配/连接 null
值或空字符串:
$lang = 'lang';
$suffix = null;
$lang .= $suffix;
或
$desc = 'name';
$suffix = '';
$desc .= $suffix;
内联条件也可能出现这种情况:
<div class="item<?= $is_selected ? ' selected' : null ?>"></div>
或
<div class="item<?= $is_selected ? ' selected' : '' ?>"></div>
我知道它不会影响整体性能,但是它可以与使用双引号或单引号进行比较吗?
最佳答案
> php --version
PHP 5.3.12 with Suhosin-Patch (cli) (built: May 9 2012 11:44:31)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
with Suhosin v0.9.33, Copyright (c) 2007-2012, by SektionEins GmbH
php > $start = microtime(true); for( $i = 0; $i < 1000000; ++$i ) { $str = 'foo'; $str .= null; } printf('%.5f', microtime(true) - $start);
0.15258
php > $start = microtime(true); for( $i = 0; $i < 1000000; ++$i ) { $str = 'foo'; $str .= ''; } printf('%.5f', microtime(true) - $start);
0.11397
运行了几次,每次都得到非常相似的结果。
结论:
- 将空字符串附加到字符串比将
null
附加到空字符串稍微快一点。 - 除非您在具有数十亿次迭代的循环中执行此操作,否则从性能角度来看这并不重要,因此请使用具有更好语义意义的循环。
关于php - 性能: Empty string or null in PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10952612/