Quick actions

cmd+k|ctrl+k

Navigation

Languages

php强制转换函数性能测试

Snippet info

Language

Php

Visibility

public

Author

mosi

Created

2018-11-21T03:47:56Z

Updated

2018-11-21T03:47:56Z

<?php 
function microtime_float() {
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}
$foo = "1';Select * ...";

/**
 * php强制转换为数字测试
 */
// (int)
$fStart = microtime_float();
for ($i = 0; $i < 1000000; $i++) {
    $bar = (int)$foo;
}
$fEnd = microtime_float();
print "(int):" . ($fEnd - $fStart) . "s\n";
// intval()
$fStart = microtime_float();
for ($i = 0; $i < 1000000; $i++) {
    $bar = intval($foo);
}
$fEnd = microtime_float();
print "intval():" . ($fEnd - $fStart) . "s\n";
// sprintf()
$fStart = microtime_float();
for ($i = 0; $i < 1000000; $i++) {
    $bar = sprintf("%d", $foo);
}
$fEnd = microtime_float();
print "sprintf():" . ($fEnd - $fStart) . "s\n";

/**
 * php强制转换为字符串测试
 */
// (string)
$fStart = microtime_float();
for ($i = 0; $i < 1000000; $i++) {
    $bar = (string)$foo;
}
$fEnd = microtime_float();
print "(string):" . ($fEnd - $fStart) . "s\n";
// strval()
$fStart = microtime_float();
for ($i = 0; $i < 1000000; $i++) {
    $bar = strval($foo);
}
$fEnd = microtime_float();
print "strval():" . ($fEnd - $fStart) . "s\n";


INFO