int的最大值、超过最大值后类型转换的不同

本文深入探讨了PHP中整数类型的限制与转换机制,包括如何在类型转换时避免不可预见的结果,并通过实例展示了如何正确处理超出整数范围的数值。重点介绍了PHP_INT_MAX的使用以及字符串转数字时的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

int 类型最大值 为 2147483647

一般在类型转换时  如果超过这个最大值 就按最大值显示

$num0 = 3800000099;
var_dump($num0);
echo (int)$num0;
echo "<br />\n";

$num1 = $_GET['num'];
var_dump($num1);
echo (int)$num1;


得到的结果是:

( float ) 3800000099 -494967197

string(11) "38000000099" 2147483647

也许以上的程序你到sae上执行不为会出现这种结果  那是因为sae PHP_INT_MAX这个预定义常量设置的比较大 (9223372036854775807) 超过这个最大值也会得到不一样的结果

自 PHP 4.4.0 和 PHP 5.0.5后,最大值可以用常量PHP_INT_MAX来表示


一开始没有注意  原来php给出的有解释:

http://cn2.php.net/manual/zh/language.types.integer.php

决不要将未知的分数强制转换为 integer,这样有时会导致不可预料的结果。

字符串转成数字 : http://cn2.php.net/manual/zh/language.types.string.php#language.types.string.conversion

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值