您的位置:首页 > 编程语言 > PHP开发

PHP基础数据类型之整型

2017-08-12 11:22 405 查看
PHP数据类型之整型(int):整型数据只能包含整数。

整型数据的特征:

1. 必须至少有一个数字(0-9)

2. 不能包含逗号或者空格

3. 没有小数点

4. 可以是正数也可以是负数

整形数据可以用三种常见格式来指定:1.十进制2.十六进制(0x为前缀)3.八进制(0为前缀)

下面让我来看下示例:

//整数
$x = 5263;
var_dump($x);
echo "<br>";

//负数
$x = -5263;
var_dump($x);
echo "<br>";

//十六进制
$x = 0x5263;
var_dump($x);
echo "<br>";

//八进制
$x = 05263;
var_dump($x);
echo "<br>";

以上代码在php7中输出以下结果:

int(5263)
int(-5263)
int(21091)
int(2739)


注意:php7特性 含有十六进制字符的字符串不再被视为数字,而是被当作普通的字符串

var_dump("0x123" == "291");
var_dump(is_numeric("0x123"));
var_dump("0xe" + "0x1");


让我们看下输出结果:

bool(false)
bool(false)
Notice: A non well formed numeric value encountered in E:\PHP\PHP_003\PHP_003.php on line 32

Notice: A non well formed numeric value encountered in E:\PHP\PHP_003\PHP_003.php on line 32
int(0)


注意:Notice: A non well formed numeric value encountered in E:\PHP\PHP_003\PHP_003.php on line 32 的警告,

我们猜想可能是某个参数类型不对,需要传入数值型而实际可能是字符串。
 

那么,让我看下那行代码:

var_dump("0xe" + "0x1");


上面说了在php7中含有十六进制的字符串不再被视为数字,显然问题是出现在这里。"0xe" 和"0x1"没有被认为是数字,而是当成了字符串,所以才会发出警告。

让我们看下在php中int 型的最大取值范围是多上。

在php中可以通过PHP_INT_MAX来进行查看。PHP_INT_MAX = 9223372036854775807

echo PHP_INT_MAX; //2147483647


我的电脑配置为win10 64位,这个值于具体的平台有关,上述仅供参考,有兴趣的可以自己试验下。

顺便提以下php7中新增的于int型有关的函数:intdiv() 函数,接收两个参数,返回值为第一个参数除于第二个参数的值并取整。

$x = intdiv(9,3);
echo $x; //3


4000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: