欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

类型相关的函数、进制的转换、运算符、拓展知识(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类型