PHP数据类型 var_dump gettype json_encode json_decode

PHP 的七种数据类型:

  • String字符串
  • Integer 整型
  • Float 浮点型
  • Boolean 布尔型
  • Array 数组
  • Object 对象
  • NULL 空值

PHP中用 var_dump( ) 函数判断一个变量的类型与长度,可以返回变量的数据类型和值。

字符串

字符串可以是引号内的任何文本。可以使用单引号或双引号。

<?php 
	$a = "aaaa";
	echo $a;
	echo "<br>"; 
	$a = 'aaaa';
	echo $x;
	var_dump($a);//string(4) "aaaa"
?>

整型

  • 整型必须有至少一个数字(0-9)
  • 整型不能包含逗号或空格
  • 整型不能有小数点
  • 整型正负均可
  • 可以用三种格式规定整型:十进制、十六进制(前缀是 0x)或八进制(前缀是 0)
  • PHP整型在定义的时候判断了以上这些情况,如果满足就确认为整数型
<?php
	$x = -345; 
	var_dump($x);//int(-345) 负数
	$x = 0x8C; 
	var_dump($x);//int(140) 十六进制数
	$x = 047;
	var_dump($x);//int(39) 八进制数
?>

浮点型

  • 浮点型是有小数点的数字,或是指数形式的数字。
<?php 
	$x = 10.365;
	var_dump($x);//float(10.365)
	$x = 2.4e3;
	var_dump($x);//float(2400)
	$x = 8E-5;
	var_dump($x);//float(8.0E-5)
?>

布尔型

  • 布尔型是 true 或者 false
  • 布尔型通常用于条件判断
<?php
	$a=true;
	$b=false;
	var_dump($a);//bool(true)
	$c="true";
	var_dump($c);//string(4) "true"
?>

数组

  • 数组在一个变量中存储多个值
  • 数组的长度用 count( ) 来获取
  • 索引数组 - 带有数字索引的数组,类似于 javascript 中的数组
  • 关联数组 - 带有指定键的数组,类似于 javascript 中的对象
  • 多维数组 - 包含一个或多个数组的数组
<?php
//索引数组
$arr=array("aaa","bbb","ccc");
$arr[0]="aaa";
//获取数组长度用 count()
echo count($arr);//3
//打印出数组的数据类型和值
var_dump($arr);//array(3) { [0]=> string(3) "aaa" [1]=> string(3) "bbb" [2]=> string(3) "ccc" }

//关联数组
$arr1=array("name"=>"xiaoming","age"=>"37","id"=>"43");
$arr1['age']="37";

//多维数组
$arr2=array(array(1,2,3),array(4,5,6));
print_r($arr2);//Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 3 ) [1] => Array ( [0] => 4 [1] => 5 [2] => 6 ) )

?>

数组的遍历

php中数组分为索引型数组和关联型数组。
索引型数组类似 javascript 中的数组结构,用 for 来遍历

<?php
	$arr=array(3,4,5,6,7);
	for($i=0;$i<count($arr);$i++){
		echo $arr[$i];//3 4 5 6 7
		echo "<br>";
	}
?>

关联型数组类似 javascript 中的对象结构,用 foreach 来遍历

<?php
	$obj=array("name"=>"xiaoming","age"=>18,"sex"=>"男");
	//可以同时遍历key和vlaue
	foreach($obj as $key=>$value){
		echo $key,"=",$value;//name=xiaoming age=18 sex=男
		echo "<br>";
	}

	//也可以只遍历value
	foreach($obj as $value){
		echo $value;//xiaoming 18 男
	}
?>

数组的排序

  • sort() - 以升序对数组排序
  • rsort() - 以降序对数组排序
  • asort() - 根据值,以升序对关联数组进行排序
  • ksort() - 根据键,以升序对关联数组进行排序
  • arsort() - 根据值,以降序对关联数组进行排序
  • krsort() - 根据键,以降序对关联数组进行排序
<?php
    $arr=array(4,6,2,22,11);
	sort($arr);
	echo sort($arr);//1
	for($i=0;$i<count($arr);$i++){
	    echo $arr[$i];//2 4 6 11 22
	    echo PHP_EOL;//PHP_EOL表示空格
	}
	
	$obj=array("name"=>"xiaoming","age"=>18,"sex"=>"男");
	asort($obj);
	foreach($obj as $key => $value){
	    echo $key;//name sex age
	    echo PHP_EOL;
	}
?>

JSON类型数据

  • json_encode 对变量进行JSON编码,类似于 javascript 中的 JSON.stringify( )
  • json_decode 对JSON格式的字符串进行解码,转换为PHP变量,类似于 javascript 中的 JSON.parse( )
  • json_last_error 返回最后发生的错误

json_encode() 用于对变量进行 JSON 编码,该函数如果执行成功返回 JSON 数据,否则返回 FALSE 。

<?php
   $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
   echo json_encode($arr);
   //{"a":1,"b":2,"c":3,"d":4,"e":5}
?>

json_decode() 函数用于对 JSON 格式的字符串进行解码,并转换为 PHP 变量。

<?php
   $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

   var_dump(json_decode($json));
   /* 打印出的结果如下:
		object(stdClass)#1 (5) {
		    ["a"] => int(1)
		    ["b"] => int(2)
		    ["c"] => int(3)
		    ["d"] => int(4)
		    ["e"] => int(5)
		}
	*/
   var_dump(json_decode($json, true));
?>

如果第二个参数为 TRUE 时,将返回数组,FALSE 时返回对象

<?php
   $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

   var_dump(json_decode($json, true));
   /*	打印的结果如下:
		array(5) {
		    ["a"] => int(1)
		    ["b"] => int(2)
		    ["c"] => int(3)
		    ["d"] => int(4)
		    ["e"] => int(5)
		}
	*/
?>

对象

  • 必须使用 class 关键字声明类对象,类似于 javascript 中的构造函数
<?php
 class Ball{
        var $r=10;
        function Ball($r){
            $this->r=$r;
        }
        function play(){
            return $this->r;
        }
    }
    $ball=new Ball(10);
    echo $ball->play();//10
?>

NULL

  • NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值。
  • NULL 值指明一个变量是否为空。也用于区分空字符串与空值数据。
  • 可以通过把值设置为 NULL,将变量清空
<?php
	$a="aaa";
	var_dump($a);//string(3)"aaa"
	$a=null;
	var_dump($a);//NULL
?>

返回变量类型:gettype()

返回变量的数据类型,可能的值为

  • boolean
  • integer
  • double
  • string
  • array
  • object
  • resource
  • NULL
  • unknown type
<?php
	class Box{};
	echo gettype(“aaa”);//string
    echo gettype(1022);//integer
    echo gettype(true);//boolean
    echo gettype(null);//NULL
    echo gettype(array());//array
    echo gettype(new Box());//object
?>

判断变量类型

  • is_int( ) 检测变量是不是整型;
  • is_bool( ) 检测变量是不是布尔值;
  • is_string( ) 检测变量是不是字符串;
  • is_array( ) 检测变量是不是数组类型;
  • is_double( ) 检测变量是不是浮点数;

用于条件判断,如果指定的变量符合条件,是TRUE,否则是 FALSE

<?php
	$a=123;
	if(is_int($a)){
		echo "$a 是整数";
	}
	$b="345";
	if(!is_int($b)){
		echo "$b 不是整数";
	}
?>

随机数

mt_rand( min,max) 生成min-max中间的随机数

<?php
	echo mt_rand(3,10);
?>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值