我想将这些类型的值'3'
, '2.34'
, '0.234343'
等转换为数字。在 JavaScript 中,我们可以使用Number()
,但是 PHP 中有可用的类似方法吗?
Input Output
'2' 2
'2.34' 2.34
'0.3454545' 0.3454545
通常不需要这样做,因为在大多数情况下,PHP 都会为您强制类型。对于那些你想显式转换型的情况下, 投它:
$num = "3.14";
$int = (int)$num;
$float = (float)$num;
有几种方法可以这样做:
将字符串转换为数字原始数据类型:
$num = (int) "10";
$num = (double) "10.12"; // same as (float) "10.12";
对字符串执行数学运算:
$num = "10" + 1;
$num = floor("10.1");
使用intval()
或floatval()
:
$num = intval("10");
$num = floatval("10.1");
使用settype()
。
为了避免出现问题,请尝试使用intval($var)
。一些例子:
<?php
echo intval(42); // 42
echo intval(4.2); // 4
echo intval('42'); // 42
echo intval('+42'); // 42
echo intval('-42'); // -42
echo intval(042); // 34 (octal as starts with zero)
echo intval('042'); // 42
echo intval(1e10); // 1410065408
echo intval('1e10'); // 1
echo intval(0x1A); // 26 (hex as starts with 0x)
echo intval(42000000); // 42000000
echo intval(420000000000000000000); // 0
echo intval('420000000000000000000'); // 2147483647
echo intval(42, 8); // 42
echo intval('42', 8); // 34
echo intval(array()); // 0
echo intval(array('foo', 'bar')); // 1
?>