php $stri.=$v;是什么意思,在PHP中,$ str ==''和strlen($ str)== 0是否有区别?

我执行了一个简单的基准。 (我从来没有做过,所以这可能是完全无效的。)它测试=='',strlen()== 0,===''和strlen()=== 0。

header('Content-type: text/plain');

// -- Testing == '';

$string = '';

$startTime = microtime(true);

for($i = 0; $i < 10000000; ++$i)

$string == '';

$endTime = microtime(true);

echo "\$string = ''; \$string == ''; took " . ($endTime - $startTime) . " seconds\n";

$string = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';

$startTime = microtime(true);

for($i = 0; $i < 10000000; ++$i)

$string == '';

$endTime = microtime(true);

echo "\$string = '$string'; \$string == ''; took " . ($endTime - $startTime) . " seconds\n";

$startTime = microtime(true);

for($i = 0; $i < 10000000; ++$i)

'' == '';

$endTime = microtime(true);

echo "'' == ''; took " . ($endTime - $startTime) . " seconds\n";

// -- Testing strlen() == 0;

$string = '';

$startTime = microtime(true);

for($i = 0; $i < 10000000; ++$i)

strlen($string) == 0;

$endTime = microtime(true);

echo "\$string = ''; strlen(\$string) == 0; took " . ($endTime - $startTime) . " seconds\n";

$string = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';

$startTime = microtime(true);

for($i = 0; $i < 10000000; ++$i)

strlen($string) == 0;

$endTime = microtime(true);

echo "\$string = '$string'; strlen(\$string) == 0; took " . ($endTime - $startTime) . " seconds\n";

$startTime = microtime(true);

for($i = 0; $i < 10000000; ++$i)

strlen('') == 0;

$endTime = microtime(true);

echo "strlen('') == ''; took " . ($endTime - $startTime) . " seconds\n";

// -- Testing === '';

$string = '';

$startTime = microtime(true);

for($i = 0; $i < 10000000; ++$i)

$string === '';

$endTime = microtime(true);

echo "\$string = ''; \$string === ''; took " . ($endTime - $startTime) . " seconds\n";

$string = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';

$startTime = microtime(true);

for($i = 0; $i < 10000000; ++$i)

$string === '';

$endTime = microtime(true);

echo "\$string = '$string'; \$string === ''; took " . ($endTime - $startTime) . " seconds\n";

$startTime = microtime(true);

for($i = 0; $i < 10000000; ++$i)

'' === '';

$endTime = microtime(true);

echo "'' === ''; took " . ($endTime - $startTime) . " seconds\n";

// -- Testing strlen() === 0;

$string = '';

$startTime = microtime(true);

for($i = 0; $i < 10000000; ++$i)

strlen($string) === 0;

$endTime = microtime(true);

echo "\$string = ''; strlen(\$string) === 0; took " . ($endTime - $startTime) . " seconds\n";

$string = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';

$startTime = microtime(true);

for($i = 0; $i < 10000000; ++$i)

strlen($string) === 0;

$endTime = microtime(true);

echo "\$string = '$string'; strlen(\$string) === 0; took " . ($endTime - $startTime) . " seconds\n";

$startTime = microtime(true);

for($i = 0; $i < 10000000; ++$i)

strlen('') === 0;

$endTime = microtime(true);

echo "strlen('') === ''; took " . ($endTime - $startTime) . " seconds\n";结果:

$string = ''; $string == ''; took 1.01983308792 seconds

$string = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'; $string == ''; took 1.04193401337 seconds

'' == ''; took 1.06608295441 seconds

$string = ''; strlen($string) == 0; took 2.1510848999 seconds

$string = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'; strlen($string) == 0; took 2.27101397514 seconds

strlen('') == ''; took 2.5775551796 seconds

$string = ''; $string === ''; took 0.854554176331 seconds

$string = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'; $string === ''; took 0.714010000229 seconds

'' === ''; took 0.749495983124 seconds

$string = ''; strlen($string) === 0; took 1.9263010025 seconds

$string = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'; strlen($string) === 0; took 1.95309996605 seconds

strlen('') === ''; took 2.40874910355 seconds正如你所看到的,与''比较的速度是比较字符串长度的两倍。另外,使用===比使用==稍快,并且它是安全的!尼斯。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值