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);
?>