进制转换
字符编码
编码的分类
ASCII码
1. 基本ASCII码
也叫作标准ASCII码或国际ASCII码,全世界统一的特点是最高位恒 为0,可用的只有7位!
2. 扩展ASCII码
基本上每个国家都利用扩展ASCLL码编码成自己的国家的计算机语言,特点为最高位恒为1.
GB2312
最初的中文编码,编码6千多汉字。
GBK
对GB2312进行了扩充,编码2万多汉字。
BIG5
俗称大五码,繁体编码,为港澳台使用。
Unicode
全世界用的编码,100多万个字符,每个字符占4个字节,比较浪费资源。
UTF-8
对Unicode的优化,不同的字符占用不同的字节。
进制转换成函数
数据类型——标量类型
Boolean/bool(布尔型)
最简单的数据类型,表达为真值,true或者false,不区分大小写。
Integer/int(整型)
i. 三种表现形式:十进制,八进制(以0开头),十六进制(以0x开头);
ii. 在内存中是以二进制的补码的形式存放的;
1. 原码:将数值转换成二进制,以最高位作为符号位,最高位0代表为正,最高位1代表为负。
2. 反码:
正数:正数的原码、反码、补码相等!
负数:在原码的基础之上,除了符号位不变之外,其余的按位取反也就是 1变成0,0变成1。
3. 补码:
正数:正数的原码、反码、补码相等!
负数:在反码的基础之上再加1
float (浮点型,也称作 double )
iii. 浮点数的有效数位为14位。
iv. 最好不要使用浮点数进行比较,因为浮点数很容易丢失精度。
string (字符串)
单引号,双引号
1. 区别:
a) 单引号不可以解析被包裹的变量,双引号可以;
b) 单引号不需要解析变量,执行效率比双引号高;
c) 单引号只能转义单引号和转移符号反斜杠(\),双引号除了双引号和反斜杠,其他转义字符也可以转义。
定界符(Heredoc),定界符(Nowdoc)
2. 定义:用户可以自己定义字符串边界。
3.
a) 开始和结束符必须相同,而且只能由字母数字和下划线构成(遵循标识符的基本规范),而且不能以数字开头!
b) Heredoc语法与双引号定义的字符串的解析规则基本一样,唯一的不同就是定界符里面的双引号不需要转义!
c) Nowdoc语法与单引号定义的字符串的解析规则基本一样,唯一的不同就是定界符里面的单引号不需要转义!
d) 结束标识符必须在一行的顶格处!
数据类型——特殊类型
NULL
得到NULL的方法:
把一个变量赋值为NULL;
使用一个没有定义的或者已经被unset掉的变量的时候;
强制返回一个没有返回值的函数的时候;
Resource(资源型)
i. PHP如果要使用外部数据,都是采用资源的方式来管理的;
ii. 无法定义一个资源类型的变量。
类型转换
自动类型转换
i. 字符串会将最前面的数值部分转换为相应的数值;
ii. 如果字符串是以非数值的内容开头的,则其参与运算的时候转换为0;
iii. 如果字符串是以复合浮点数的指数的形式开头的,则该字符串会转换成相应的指数形式。
iv. PHP在进行逻辑判断的时候(if,while,for等),不用考虑数据的类型问题,因为该数据在进行判断时候一定会自动转换成布尔型!
整型:0为假,非0为真;
浮点型:浮点0为假,其他为真;
字符串型:空字符串和字符串0为假,其余为真;
数组:空数组为假,其余为真;
NULL型:为假;
对象和资源型永远为真。
强制类型转换、
v. 语法:(目标类型)数据;
vi. 强制类型转换符只是把原来的变量的值进行强制转换后拿来使用而已,并不影响原有的数据的类型和值;
vii. 强制类型转换符只是把原来的变量的值进行强制转换后拿来使用而已,并不影响原有的数据的类型和值!
viii. 使用(object)进行强制转换的时候,是将后面的数据转换为该对象的一个属性!