目录
类型判断
用于获取以及设定数据(变量)的类型
设置类型
进制转换
运算符
详细说明
计算机码
位运算
类型判断
用一组以“is_”开头后面跟类型名字的函数:
is_xxx(变量名)
Bool类型不能用echo查看,可以使用var_dump查看。
var_dump(is_int($a)); var_dump(is_string($b));
用于获取以及设定数据(变量)的类型
- Gettype(变量名):获取类型得到的是该类型对应的字符串。
- Settype(变量名):设定数据类型(与强制转换不同)。
- 强制类型转换变量名:对数据值复制的内容进行处理。
- settype会直接改变数据本身。
设置类型
var_dump(settype($b,'int')); echo gettype($b),$b;//b为int型
- 整数类型:保存整数数值(范围限制)4个字节存储数据,最大32位,PHP中默认有符号类型(区分正负数)。
PHP定义了四种整型:十进制、二进制、八进制、十六进制。
十进制 | $a=120; |
二进制 | $a=0b110; |
八进制 | $a=0120; |
十六进制 | $a=0x120; |
PHP输出数值默认为十进制。
- 浮点类型:小数类型以及超过整型所能存储范围你的整数(不保证精度),精度范围大概在15个有效数字左右。
尽量不用浮点数做精确判断。
- 布尔类型
empty( ):判断数据的值是否为‘空’(不是NULL),如果为空返回true,不为空返回false。(0也返回true)
isset():判断数据存储的变量本身是否存在,存在返回true,不存在返回false。
进制转换
- 手动转换(通过公式自己算)
- 函数转换
decbin() | 十进制→二进制 |
decoct() | 十进制→八进制 |
dechex() | 十进制→十六进制 |
bindec() | 二进制→十进制 |
运算符
operator,是一种将数据进行运算的特殊符号。
赋值运算符 | = |
算术运算符 | +、-、*、/、% |
比较运算符 | >=、<=、==、>、<、!=、===、!== |
逻辑运算符 | &&、||、! |
连接运算符 | . 、.= |
错误抑制符 | @ |
三目运算符 | 表达式1?表达式2:表达式3 |
自操作运算符 | ++、--、+=、-=、*=、/=、%= |
详细说明
- 逻辑与(&&)和逻辑或(||)又称之为短路运算符,在写代码的时候,尽量将出现率最高的(能直接判断的)放在第一位。
- .:将两个字符串连接到一起。
- .=:复合运算,将左边的内容与右边的内容连接起来,然后重新赋值给左边。
- @:在可能出错的表达式前面使用,通常在生产环境会用到。
- 三目运算符:表达式1成立执行表达式2,不成立执行表达式3。
- 三目运算符也可以进行复合运算。
表达式1?(表达式2?表达式4:表达式5):(表达式3?表达式6:表达式7)
计算机码
计算机在实际存储数据的时候,采用二进制码编码规则。
- 原码:数据本身从十进制转换成二进制得到的结果。
正数:左边符号位为0
负数:左边符号位为1
- 反码:针对负数,符号位不变,取余取反。
- 补码:针对负数,反码+1。
系统中存在2个0:+0和-0
+0:00000000
-0:00000000
取反:11111111
补码:00000000
位运算
取出计算机中能够最小的单位(bit)进行计算。
& | 按位于 |
| | 按位或 |
~ | 按位非 |
^ | 按位异或,两个相同则为0,不同为1 |
<< | 按位左移,整个32位向左移动一位,右补0(乘2) |
>> | 按位右移,整个32位向右移动一位,左边补符号位(除2) |
系统进行任何位运算的时候都是使用的补码。
运算结束之后都必须转换成原码。