32位系统和64位系统在大多数情况下没有区别,但是一些细节会造成错误,下面这三个常用的函数则受此影响,稍不注意就会影响系统的运行:
intval , ip2long, strtotime
php文件:
<?php
$ints = intval("2123456789");
echo "32位的数字:" . $ints . "\n";
$ints = intval("8123456789");
echo "64位的数字:" . $ints . "\n";
$ints = ip2long("192.168.1.253");
echo "64位下ip长格式:" . $ints . "\n";
$ints = strtotime('2018-02-23 12:13:14');
echo "32位的strtotime: " . $ints . "\n";
$ints = strtotime('2088-02-23 12:13:14');
echo "64位的strtotime: " . $ints . "\n";
?>
结果:
64位系统:
% php a.php
32位的数字:2123456789
64位的数字:8123456789
64位下ip长格式:3232236029
32位的strtotime: 1519359194
64位的strtotime: 3728347994
32位系统:
# php a.php
32位的数字:2123456789
64位的数字:2147483647
32位下ip长格式:-1062731267
32位的strtotime: 1519359194
64位的strtotime: