Php 强制转换为32位整数可能会导致截断?

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

查看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 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位而言,范围介于]-21474836482147483647[
对于PHP 64位而言,范围介于-9223372036854775808,9223372036854775807[

我的测试(PHP 32位、WINDOWS 7 64位、Intel CORE i3 64位):

第二次测试(仅增加最后一个值的1)

最后:为了确定您的环境中整数的最大值,只需打印这个

var_dump(PHP_INT_MAX);

整数的最大和最小大小取决于PHP的构建:32位或64位(操作系统和处理器也必须遵循)

对于PHP 32位而言,范围介于]-21474836482147483647[
对于PHP 64位而言,范围介于-9223372036854775808
9223372036854775807[

我的测试(PHP 32位、WINDOWS 7 64位、Intel CORE i3 64位):

第二次测试(仅增加最后一个值的1)

最后:为了确定您的环境中整数的最大值,只需打印这个

var_dump(PHP_INT_MAX);

整数的最大和最小大小取决于PHP的构建:32位或64位(操作系统和处理器也必须遵循)

对于PHP 32位而言,范围介于]-21474836482147483647[
对于PHP 64位而言,范围介于-9223372036854775808
9223372036854775807[

我的测试(PHP 32位、WINDOWS 7 64位、Intel CORE i3 64位):

第二次测试(仅增加最后一个值的1)

最后:为了确定您的环境中整数的最大值,只需打印这个

var_dump(PHP_INT_MAX);

整数的最大和最小大小取决于PHP的构建:32位或64位(操作系统和处理器也必须遵循)

对于PHP 32位而言,范围介于]-21474836482147483647[
对于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);