这两者之间是否存在任何性能差异?
$bin = 1000 //8 in decimal
$bin_a = strrev($bin);
$bin_a = str_split($bin_a);
或
$bin_b = str_split($bin);
$bin_b = array_reverse($bin_b);
或是否有任何函数将字符串转换为数组并同时反转?
我想手动将二进制转换为十进制而不使用本机php函数,
或者更简单的方法吗?
答案 0 :(得分:1)
没有意义的区别。 并不难以测试出来。你应该能够毫无困难地编写这样的测试。
<?php
$start_a = microtime(true);
$bin = "1000"; //8 in decimal
for ($n = 0; $n < 1000000; $n++) {
$bin_a = strrev($bin);
$bin_a = str_split($bin_a);
}
$end_a = microtime(true);
echo "Took ", $end_a - $start_a, " seconds \n";
$start_b = microtime(true);
for ($n = 0; $n < 1000000; $n++) {
$bin_b = str_split($bin);
$bin_b = array_reverse($bin_b);
}
$end_b = microtime(true);
echo "Took ", $end_b - $start_b, " seconds \n";
输出,重复一百万次:
花了0.26819205284119秒
花了0.39758610725403秒
如果您正在为此进行优化,那么您很可能做错了。 :)