php中intfloatbool变量声明,PHP部分数据类型(Boolean,Int,Float,String)总结

版权声明:以上内容大多来自PHP手册,我想摘抄下来最重要的部分,用作自己记忆

PHP的数据类型有:

Boolean,Integer,Float,String,Array,Object,Resource,NULL,Callback/Callable

1、Boolean类型(bool)

分为true和false

其中,有一些其他类型转为Boolean时会成为false:

布尔值 FALSE 本身

整型值 0(零)

浮点型值 0.0(零)

空字符串,以及字符串 “0”

不包括任何元素的数组

特殊类型 NULL(包括尚未赋值的变量)

从空标记生成的 SimpleXML 对象

但是,负数(或者非零值)会认为是true。

输出结果:

echo 没有输出。

bool(false)

bool(true)

2、Integer 整数

主要是十进制数,当然也有二进制,八进制和十六进制。

下面是各种进制的表示方法:

$a = -123; // 负数

$a = 0123; // 八进制数 (等于十进制 83)

$a = 0x1A; // 十六进制数 (等于十进制 26)

$a = 0b11111111; // 二进制数字 (等于十进制 255)

2.1进制转换:

0818b9ca8b590ca3270a3433284dd417.png

分别是十进制转二进制,十进制转十六进制,十进制转八进制。

ps:

二进制:Binary

八进制:Octal

十六进制:Hexadecimal

2.2数字字符串

$str = '19';

echo 2+$str;

echo $str+2;

输出为:21 21

说明数字字符串进行运算的时候会自动转为数字

2.3 整数溢出

整数的最大值和操作系统的位数有关系。

我是mac 64为系统,所以

0818b9ca8b590ca3270a3433284dd417.png

var_dump( PHP_INT_MAX+1);

输出:float(9.2233720368548E+18)

PHP会溢出为浮点型,在Java中会变成负数的最大值。

3、Float 浮点数

所以永远不要相信浮点数结果精确到了最后一位,也永远不要直接比较两个浮点数是否相等。

以下为错误的做法:

if($float1==$float2){

//todo

}

而是:

设定一个精度值,来表示浮点数大致相等

4、String

一个字符串 string 就是由一系列的字符组成,其中每个字符等同于一个字节。这意味着 PHP 只能支持 256 的字符集,因此不支持 Unicode 。

ps:我没懂这个什么意思,字符串里可以写中文啊。然后实验了一下:

$zh ="你";

$en ="h";

echo strlen($zh)."----".strlen($en);

输出:3—-1,可以发现中文长度为3。

想要获得中文字符串的真实长度的话可以用mb_strlen($str)

单引号和双引号都可以表示字符串,但是双引号中可以有转义字符(\n 换行,\t 一段空格),还可以进行变量解析(就是字符串里的$变量名可以解析成对应的字符串)

还有就是Heredoc 结构

(第三种表达字符串的方法是用 heredoc 句法结构:<<

4.1 变量解析

一般变量的解析:

$name = 'php';

echo "My name is $name";

类似的,一个 array 索引或一个 object 属性也可被解析。

类的非静态属性的解析:

class Test{

var $id=1314;

public function display(){

echo "function display()";

}

}

$obj = new Test();

echo "$obj->id";

输出:1314

不能解析function:

class Test{

var $id=1314;

public function display(){

echo "function display()";

}

}

$obj = new Test();

echo "$obj->display()";

错误提示是:

PHP Notice: Undefined property: Test::$display in Type.php on line 36

意思是display是一个未声明的属性,所以是属性才可以哟!

4.2 字符串的操作

字符串分割

$str ="你好,PHP";

$res =explode(",",$str);

var_dump($res);

上面的逗号为中文的逗号 ,

字符串替换

$str ="你好,PHP";

$res =str_replace(",","--",$str);

var_dump($res);

4.3 字符串转换问题

数字转字符

不要想像在 C 语言中的那样,通过将一个字符转换成整数以得到其代码。使用函数 ord() 和 chr() 实现 ASCII 码和字符间的转换。

里面灰色字体是phpstorm的提示

0818b9ca8b590ca3270a3433284dd417.png 分别输出: a—A 97—65

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值