有关于php数据类型和运算符的相关知识:
整体划分:
标量类型: int, float, string, bool
复合类型: array, object
特殊类型: null, resouce
整数类型:int integer
整数进制:十进制、八进制、十六进制
十进制转二进制:$v1 = decbin(123); 注意:参数必须是10进制数字,转换后的结果必然是二进制字符串。
十进制转八进制:$r1 = decoct(十进制数字); 结果是一个8进制数字字符串。
十进制转十六进制:dechex(十进制数字); 结果是16进制数字字符串。
二进制转十进制:$v1 = bindec(“二进制数字字符串”) ; 得到的结果是10进制数字
八进制转十进制:$v1 = octdec(“8进制数字字符串”) ; 得到的结果是10进制数字
十六进制转十进制:$v1 = hexdec(“16进制数字字符串”) ;//得到的结果是10进制数字
注意:十进制转为其他进制结果是字符串,其他进制转为十进制要求给定数据是字符串形式。
浮点类型:float、double、real
$v1 = 1.234; 带小数点,,就是浮点类型。
$v2 = 1.234E3; 含义是:1.234乘以10的3次方,即1234,带E的形式就是浮点数。
浮点数不应直接进行大小比较。
当整数运算的结果超出整数的范围后,会自动转换为浮点数。(整数的范围,在32位系统下,大约正负20多亿)
字符串类型string:
在php中,单引号和双引号字符串,是有不同细节含义的字符串。
单引号字符串:
$s1="php34.com";
$str1='ab\nc"d\'efg:$s1';
echo"<p>$str1</p>";
结果:ab\nc"d\'efg:$s1
双引号字符串:
$str2="ab\nc"d\",\101,\x41,efg:$s1";
echo"<p>$str2</p>"
结果:ab c' d",A,A,efg:php34.com
布尔类型:bool,boolean
用于标识某种只有两个状态值的数据:true,false
在php中,其他各种数据,隐含转换为布尔值的时候,会当作false的有:0、0.0、null、’“”、“0”、array(); (空数组)、未定义的变量 (当然要尽量避免)
其他数据就当作true来看待了。
数组类型:arrgy
php中,数组的下标可以使用整数或字符串。数字下标常说“索引号”,字符串下标常说“键名”。
数组中还可以存储数组,就可以构成“多维数组”的形式。
数组遍历在php中有专门语法:
foreach( 数组名 as 下标变量$k => 值变量$v1 ){
//这里就是循环体,就可以使用两个变量$k, $v1
}
对象类型object
php中的对象,通常都是指自己定义的对象,纯语法的。
资源类型resource
空类型null
类型转换:
常用的一个转换(不管是自动转换还是强制转换),就是字符串转换为数字:
“5” ==>> 5 //整数
“5.5” ==>> 5.5浮点数
“5abc” ==>> 5整数
“5.5ab” ==>> 5.5浮点数
“abc5” ==>> 0整数
“abc” ==>> 0整数
“” ==>> 0
从左往右第一个数字,如果开头是字母,取0;空值,取0;
与类型相关的系统函数:
var_dump() 能够输出一个变量的完整信息。
getType() 获取一个变量的类型名称,结果是一个单词(字符串);
setType() 设置一个变量的类型,
isset() 判断一个变量是否存在数据;
empty() 判断一个数据是否为空;
unset() 销毁(删除)一个变量。
运算符:+、-、*、/、%(取余)
注意取余运算%,先取整,再取余。
自增自减:
常规:对数字进行自加1或自减1。
字符串: 只能自增,且自增的效果就是“下一个字符”。
布尔值递增递减无效。
null递减无效,递增结果为1。
比较运算符:
如果有布尔值,均转为布尔值比较:规则:true > false
如果两边都是纯数字字符串,转为数字比较;否则,就按字符串比较
字符串的比较规则为:按字符的先后顺序依次一个一个比较,发现哪个大,则就表示整体大,后续不再比较。
三目运算符:
形式为:数据1 ? 数据2 :数据3 (数据1成立执行数据2,不成立执行数据3)
来源:https://www.cnblogs.com/dns6/p/8343753.html