php支持8种原始数据类型
四种标量类型
- boolean(布尔类型,TRUE | FALSE)
- integer(整数)
- float(浮点型,也称作double),
在php中,由于语言历史的原因保留了double类型,但是double和float是同一种类型,而不像有些语言分为单精度和双精度浮点数。 - string(字符串)
两种复合类型
- array(数组)
- object(对象)
最后是两种特殊类型
- resource(资源)
- NULL(无类型)
伪类型与变量
- mixed
说明一个参数可以接受多种不同的(但不一定是所有的)类型。
例如:**gettype()**可以接受所有的php类型,**str_replace()**可以接受字符串和数组。 - number说明一个参数可以是integer或者是float。
- callback回调类型。自 PHP 5.4 起可用 callable 类型指定回调类型 callback。本文档基于同样理由使用 callback 类型信息。一些函数如 call_user_func() 或 usort() 可以接受用户自定义的回调函数作为参数。回调函数不止可以是简单函数,还可以是对象的方法,包括静态类方法。
- void void 作为返回类型意味着函数的返回值是无用的。void 作为参数列表意味着函数不接受任何参数。
- **…**可变参数 function fun($…)表示fun()函数可以接受任意多个参数。
boolean类型
boolean类型指定真值,关键字TRUE FALSE,两者都不区分大小写。
可以通过
$a_bool = TRUE;
$b_bool = FALSE;
来定义一个boolean变量并赋初始值。
boolean类型的转换
一般可以通过(bool)
或者(boolean)
来将一个非Boolean类型的变量强制转换为Boolean类型,但是当程序的流程中需要一个Boolean值时,这个变量会被自动转换为Boolean类型。
例如:
<?php
$a_int = 10;
if($a_int){
//do something
}
?>
这里的if条件判断会自动将integer转换为整数。当然,你也可以使用
(bool)$a_int
或者(boolean)$a_int
来实现转换。
boolean类型转换的规则
-
整数 0 false 其他值 true
-
string **“0"或者”"**为false 其他任何值为true
-
float(double) 0.0为false, 其他值为true
-
长度为0的数组为false,其他为true
-
不包含任何成员变量的的对象为false 其他为true
-
NULL(包含尚未赋值的变量)为false
-
从空标记生成的SimpleXML对象为false,其他值为 true
php常用的函数
- gettype($a_bool)
输出变量的数据类型
- var_dump($xxx)
输出变量类型的同时输出值
- count($arry)
返回数组的长度
数组相关
- array_chunk()
说明: array array_chunk ( array $input , int $size [, bool $preserve_keys = false ] )
将一个数组分割成为多个数组,其中每个数组的单元数由size决定,最后一个数组的单元数目可能少于size
举例:
<?php
$input_array = array( 'a' , 'b' , 'c' , 'd' , 'e' );
print_r ( array_chunk ( $input_array , 2 ));
print_r ( array_chunk ( $input_array , 2 , true ));
?>
输出如下:
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[0] => e
))
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[2] => c
[3] => d
)
[2] => Array
(
[4] => e
))
- array_combine()
说明:array array_combine ( array $keys , array $values )
返回一个 array ,用来自 keys 数组的值作为键名,来自 values 数组的值作为相应的值。
举例:
<?php
$a = array( 'green' , 'red' , 'yellow' );
$b = array( 'avocado' , 'apple' , 'banana' );
$c = array_combine ( $a , $b );
print_r ( $c );
?>
输出如下:
Array
(
[green] => avocado
[red] => apple
[yellow] => banana
)
注意:如果两个数组的元素个数不匹配,或者第一个数组的元素无法作为key(key只能是string或者ingeter类型),则会返回"FALSE"
- array_key_exists
说明:bool array_key _exists ( mixed $key , array $search )
array_key_exists() 在给定的 key 存在于数组中时返回 TRUE 。 key 可以是任何能作为数组索引的值。 array_key_exists() 也可用于对象。
举例:
<?php
$search_array = array( 'first' => 1 , 'second' => 4 );
if ( array_key_exists ( 'first' , $search_array )) {
echo "The 'first' element is in the array" ;
}
?>
- explode
用一个字符串分割另外一个字符串
- implode
将一个一维数组转换为字符串
- array_chunk
将一个数组划分为多个数组