PHP 7 intdiv() vx floor 或自定义类型转换
PHP 7 intdiv() vx floor or custom type cast
我正在寻找 PHP 7 个新添加项以提高我的技能,我想知道 intdiv()
与 floor()
或自定义 type cast
例如
echo (int) (8/3); // 2
echo floor((8/3)); // 2
echo intdiv((8/3)); // 2
新版本 PHP 添加此功能的确切原因是什么。
(int)
将值转换为 int
而 floor()
将 float
保留为 float
。您在示例中使用了正数,但不同之处在于负数。
intdiv
的设计目的是在除以 2 int
之后保留 int
。
echo (int) (-8/3); // -2
echo floor(-8/3); // -3
echo intdiv(-8,3); //-2
总的来说,您提到的所有这三个都与您的示例相似,但 intdiv()
会在处理非常大的数字集时为您提供更准确的结果
这里是你可以看到的例子。
echo PHP_INT_MAX; // 9223372036854775807
echo (int)(PHP_INT_MAX/2); // 4611686018427387904
// here you can look the ending number
echo floor(PHP_INT_MAX/2); // 4.6116860184274E+18
// here you can see floor will return scientific notation for larger numbers
echo intdiv(PHP_INT_MAX,2); // 4611686018427387903
// you can compare the result return by (int) cast
intdiv()
总是给你正数或者换句话说 intdiv()
让你知道多少次你可以平分
另一个示例开发人员总是使用 Modulus
运算符来获得余数,但 intdiv()
将始终 return 你正数并让你知道你可以平均分配多少次。
echo (5 % 2) // 1
echo intdiv(5, 2) // 2
希望这足以理解他们三个之间的区别..
我正在寻找 PHP 7 个新添加项以提高我的技能,我想知道 intdiv()
与 floor()
或自定义 type cast
例如
echo (int) (8/3); // 2
echo floor((8/3)); // 2
echo intdiv((8/3)); // 2
新版本 PHP 添加此功能的确切原因是什么。
(int)
将值转换为 int
而 floor()
将 float
保留为 float
。您在示例中使用了正数,但不同之处在于负数。
intdiv
的设计目的是在除以 2 int
之后保留 int
。
echo (int) (-8/3); // -2
echo floor(-8/3); // -3
echo intdiv(-8,3); //-2
总的来说,您提到的所有这三个都与您的示例相似,但 intdiv()
会在处理非常大的数字集时为您提供更准确的结果
这里是你可以看到的例子。
echo PHP_INT_MAX; // 9223372036854775807
echo (int)(PHP_INT_MAX/2); // 4611686018427387904
// here you can look the ending number
echo floor(PHP_INT_MAX/2); // 4.6116860184274E+18
// here you can see floor will return scientific notation for larger numbers
echo intdiv(PHP_INT_MAX,2); // 4611686018427387903
// you can compare the result return by (int) cast
intdiv()
总是给你正数或者换句话说 intdiv()
让你知道多少次你可以平分
另一个示例开发人员总是使用 Modulus
运算符来获得余数,但 intdiv()
将始终 return 你正数并让你知道你可以平均分配多少次。
echo (5 % 2) // 1
echo intdiv(5, 2) // 2
希望这足以理解他们三个之间的区别..