Php 强制转换为32位整数可能会导致截断?
查看spreep(PHP ORM库)的源代码,我在spreep/propel1/runtime/lib/query/Criteria.PHP文件中找到了这个方法:Php 强制转换为32位整数可能会导致截断?,php,int,propel,Php,Int,Propel,查看spreep(PHP ORM库)的源代码,我在spreep/propel1/runtime/lib/query/Criteria.PHP文件中找到了这个方法: /** * Set offset. * * @param int $offset An int with the value for offset. (Note this values is * cast to a 32bit integer and
/**
* Set offset.
*
* @param int $offset An int with the value for offset. (Note this values is
* cast to a 32bit integer and may result in truncation)
*
* @return Criteria Modified Criteria object (for fluent API)
*/
public function setOffset($offset)
{
$this->offset = (int) $offset;
return $this;
}
为什么在文档注释中,他们说转换为int的值可能会导致截断???在64位环境中,int不是保持为例如4000000000
?事实上是这样,为什么要写这张“便条”
谢谢你的关注 整数的最大和最小大小取决于PHP的构建:32位或64位(操作系统和处理器也必须遵循)
对于PHP 32位而言,范围介于]-2147483648,2147483647[
对于PHP 64位而言,范围介于-9223372036854775808,9223372036854775807[
我的测试(PHP 32位、WINDOWS 7 64位、Intel CORE i3 64位):
第二次测试(仅增加最后一个值的1)
最后:为了确定您的环境中整数的最大值,只需打印这个
var_dump(PHP_INT_MAX);
整数的最大和最小大小取决于PHP的构建:32位或64位(操作系统和处理器也必须遵循)
对于PHP 32位而言,范围介于]-2147483648,2147483647[
对于PHP 64位而言,范围介于-9223372036854775808,9223372036854775807[
我的测试(PHP 32位、WINDOWS 7 64位、Intel CORE i3 64位):
第二次测试(仅增加最后一个值的1)
最后:为了确定您的环境中整数的最大值,只需打印这个
var_dump(PHP_INT_MAX);
整数的最大和最小大小取决于PHP的构建:32位或64位(操作系统和处理器也必须遵循)
对于PHP 32位而言,范围介于]-2147483648,2147483647[
对于PHP 64位而言,范围介于-9223372036854775808,9223372036854775807[
我的测试(PHP 32位、WINDOWS 7 64位、Intel CORE i3 64位):
第二次测试(仅增加最后一个值的1)
最后:为了确定您的环境中整数的最大值,只需打印这个
var_dump(PHP_INT_MAX);
整数的最大和最小大小取决于PHP的构建:32位或64位(操作系统和处理器也必须遵循)
对于PHP 32位而言,范围介于]-2147483648,2147483647[
对于PHP 64位而言,范围介于-9223372036854775808,9223372036854775807[
我的测试(PHP 32位、WINDOWS 7 64位、Intel CORE i3 64位):
第二次测试(仅增加最后一个值的1)
最后:为了确定您的环境中整数的最大值,只需打印这个
var_dump(PHP_INT_MAX);
毕竟,并非所有的PHP安装都是64位的。在32位PHP安装上,int的最大值为2^31-1。@MarcB我知道,但如果你阅读文档,他们似乎认为64位也是如此,而事实并非如此。毕竟,并非所有的PHP安装都是64位的。在32位PHP安装上,int的最大值为2^31-1。@MarcB我知道,但如果你真的这么想的话d在文档中,他们似乎认为64位也是如此,但事实并非如此。毕竟,并非所有的PHP安装都是64位的。在32位PHP安装中,int的最大值为2^31-1。@MarcB我知道,但如果你阅读文档,他们似乎认为64位也是如此,而不是。并非所有的PHP安装都是64bit、 毕竟。在32位PHP安装中,int的最大值为2^31-1。@MarcB我知道,但如果你阅读文档,他们似乎认为64位也是如此,而事实并非如此。
var_dump(PHP_INT_MAX);