php - 性能: Empty string or null in PHP

标签 php types null string

由于 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/

相关文章:

javascript 函数总是返回 false

php - 样式化的单选按钮(jquery?)

data-structures - 在 Haskell 代数数据类型中的备选方案中进行选择

go - 在 golang 中,是否可以从类型本身获取 reflect.Type,从名称作为字符串?

java - 如何从具有泛型类型的变量中获取类

java - 与 Guava 的Optional<T> 一起,Mandatory<T> 会是一个有用的补充吗?

javascript - 从 JavaScript 数组中删除空值

php - 可能使用 PHP 或加载数据方法将 HTML 编码的常见问题解答导入 mysql

php - cakephp 加入查询不起作用

javascript - 什么时候用 null 或根本不初始化 JavaScript 中的变量?