类型相关的函数、进制的转换、运算符、拓展知识(php、js数据类型)
程序员文章站
2024-02-19 12:14:40
...
上次分享了数据类型的划分,接下来了解类型相关的函数。
类型相关函数
- var_dump():用于输出变量的"完整信息",用于调试代码
- getType($变量名):返回类型
- setType($变量名,'目标类型'):将该变量强制改变为目标类型
- isset():判断变量是否存在
- empty():判断是否为空
- unset():将变量删除
is_XX类型()系列函数:判断某个数据是否为某种类型
- is_int($x) :判断$X是否为整数类型
- is_float($X)
- is_string($x)
- is_bool($x)
- is_numeric($x)
- is_scalar($x) :判断$x是否为标量类型
- is_array($x)
- is_object($x)
- is_null($x)
进制的转换( 进制转换分两种情况)
进制:
- bin : 2
- oct : 8
- dec : 10
- hex : 16
一. 10进制转换为其他三种进制:
$n1 = 123;//10进制
$s1 = decbin($n1);//10转2 返回的结果是2进制数字形式的字符串!!!!!!
$s2 = decoct($n1);//10转8 返回的结果是8进制数字形式的字符串!!!!!!
$s3 = dechex($n1);//10转16 返回的结果是16进制数字形式的字符串!!!!!!
echo "<br>$n1 的 2进制形式为: $s1";//123 的 2进制形式为: 1111011
echo "<br>$n1 的 8进制形式为: $s2";//123 的 8进制形式为: 173
echo "<br>$n1 的 16进制形式为: $s3";//123 的 16进制形式为: 7b
二. 其他三种进制转换为10进制:
// bindec(一个2进制数字字符串): 结果返回2进制数字字符串对应的10进制数字形式!!!!!!
// octdec(一个8进制数字字符串): 结果返回8进制数字字符串对应的10进制数字形式!!!!!!
// hexdec(一个16进制数字字符串): 结果返回16进制数字字符串对应的10进制数字形式!!!!!!
$num2 = "1010110";
$num8 = "123"; // 当做8进制
//写的本质'字符串',不是整数数字 无需加0
$num16 = "123abc"; //当做16进制数字
$m1 = bindec($num2); //将2进制字符串转换为10进制数字
$m2 = octdec($num8); //将8进制字符串转换为10进制数字
$m3 = hexdec($num16); //将16进制字符串转换为10进制数字
echo "<br>2进制数字:$num2 的对应10进制值为: $m1";
echo "<br>8进制数字:$num8 的对应10进制值为: $m2";
echo "<br>16进制数字:$num16 的对应10进制值为: $m3";
//结果为:
// 2进制数字:1010110 的对应10进制值为: 86
// 8进制数字:123 的对应10进制值为: 83
// 16进制数字:123abc 的对应10进制值为: 1194684
其他进制的转换,例如:
// 8进制字符串"12345",转换为2进制结果:
$v1 = octdec("12345");//此时,v1为10进制数字
$result = decbin($v1); //此时 结果为2进制数字字符串
echo "8进制字符串'12345',转换为2进制结果:".$result;
//output: 8进制字符串'12345',转换为2进制结果:1010011100101
接下来了解一下运算符:
算术运算符
+ - * / %
针对数字进行运算
两边不是数字,自动转换为数字
取余(取模运算)% 只针对整数进行运算,如果不是 就会截取为整数
11.3 % 3 ---》 11 % 3
11.8 % 3.8 ---》 11 % 3
自增自减运算符
常规:对数字进行自加1或者自减1
字符串:只能对字母或数字自增、且自增的效果是“下一字符”
布尔自增自减无效
null递减无效,递增结果为1
探究前++ 后++ 的问题(前++ :先加1 再运算、后++ :先运算 再加1)
$v1 = 1;
$v2 = 1;
$v1++; //2
++$v2; //2
//独立运算 自增效果一样
echo $v1++;//2 此行后 v1 =3
echo "<br>";
echo ++$v2;//3 此行后 v2 =3
echo "<hr>";
$s1 = $v1++;//3 此行后 v1= 4
$s2 = ++$v2;//4 此行后 v2= 4
echo "<br>s1 = $s1,s2 =$s2 ";// s1 = 3,s2 =4
echo "<br>v1 = $v1,v2 =$v2 ";// v1 = 4,v2 =4
前++ 后++ 的效率比较
$t1 = microtime(true);//获得当前时间,精确到万分之一秒
for ($i=0; $i <10000000 ; ++$i) {
# code...
}
$t2 = microtime(true);//获得当前时间,精确到万分之一秒
for ($i=0; $i <10000000 ; $i++) {
# code...
}
$t3 = microtime(true);//获得当前时间,精确到万分之一秒
echo "<p>前加加耗时:".($t2-$t1);//前加加耗时:0.24000000953674
echo "<p>后加加耗时:".($t3-$t2);//后加加耗时:0.27699995040894
拓展知识:
PHP数据类型划分(8种):
js数据类型(6种):
- 基本类型(标量类型):整数类型、浮点数类型、字符串类型、布尔类型
- 复合类型:数组、对象
- 特殊类型:空类型、资源类型
Number类型
String类型
Undefined类型
Boolean类型
Null类型
Object类型
上一篇: PHP 判断的几个函数
下一篇: PHP学习笔记:判断对象的类型