PHP基础数据类型之整型

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



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值