PHP零基础开发之《PHP数据类型及其运算符》
PHP的数据类型,主要有字符串、整数、浮点数、逻辑、数组、对象、空值和资源类型(对象和资源类型,此处暂且不讲)。其中,字符串,整数、浮点数、逻辑为基本类型或标量类型,数组和对象为复杂类型,NULL和资源为特殊类型。
1、字符串类型(string)
类型定义:字符串可以是单引号或双引号内的任何文本,如”Hello world.”或’Hello world.’。
运算符:多个字符串,可以使用点符号(.)进行拼接,也称为连接。如”Hello world!” . “ ” . “I am Carter.”,为两个字符串和中间一个空字符拼接,结果为”Hello world! I am Carter.”。
2、整数类型(integer)
类型定义:又称为整型,包括以下规则:
- 必须有至少一个数字(0-9)
- 不能包含逗号或空格
- 不能有小数点
- 可以有正负号
- 有不同的进制写法:如十进制数15(通常写法,个位数为0-9),十六进制数0xF(以0x开头,个位数为0-F,其中ABCDEF分别是10到15,并且可以小写),八进制数017(以0开头,个位数为0-7),都表示同一个数。
运算符:运算方法见下表:
运算符 | 名称 | 例子 | 结果 |
+ | 加法 | 1+2 | 3 |
- | 减法 | 6-2 | 4 |
* | 乘法 | 2*3 | 6 |
/ | 整除 | 7/2 | 3 |
% | 取余 | 7/2 | 1 |
3、浮点数类型(float)
类型定义:又称为浮点型,指有小数点或指数形式的数字类型。如100.36,1.0036e2都是同一个数。其中,1.0036e2可以写为1.0036E2,表示1.0036乘以10的二次方。
运算符:浮点数的运算方法同整数。
4、逻辑类型(boolean)
类型定义:又称为布尔类型,这种类型只有2个取值,true和false,即逻辑真和逻辑假,通常用于条件测试。
比较运算符:运算的结果是一个逻辑(布尔)类型。如下表所示:
运算符 | 名称 | 例子 | 结果 |
== | 等于 | 1==1 | true |
=== | 全等(包括类型) | 1===’1’ | false |
!= | 不等于 | 1!=1 | false |
<> | 不等于(与!=等价) | 1<>2 | true |
!== | 不全等 | 1!==’1’ | true |
> | 大于 | 2>1 | true |
< | 小于 | 1<2 | true |
>= | 大于等于 | 2>=1 | true |
<= | 小于等于 | 2<=2 | true |
逻辑(布尔)运算符:运算的结果也是一个逻辑(布尔)类型。如下表所示:
逻辑运算符 | ||
$a and $b | 逻辑与 | TRUE,如果 $a 和 $b 都为 TRUE。 |
$a && $b | ||
$a or $b | 逻辑或 | TRUE,如果 $a 或 $b 任一个为 TRUE。 |
$a || $b | ||
! $a | 逻辑非 | TRUE,如果 $a 为 FALSE。 |
$a xor $b | 逻辑异或 | TRUE,如果 $a 或 $b 任一为 TRUE |
5、空值(null)
表示没有任何值。唯一的取值为null,不区分大小写。
6、数组类型(array)
类型定义:即按顺序排列的一组键值对的集合,写法为array(0=>“a”, 1=>“b”, 2=>“c”) 或 [0=>“a”, 1=>“b”, 2=>“c”],数组中符号=>左边的称为键,符号=>右边的称为值,数组的键又称为索引或下标,数组的值又称为元素。
包括以下规则:
- 数组元素,可以是任何一种数据类型
- 键可以省略,如array(0=>“a”, 1=>“b”, 2=>“c”) 和 array(“a”, “b”, “c”)都表示相同的值。
- 只有数字键值可以省略,省略时其键为前一个数字键+1,前边元素没有数字键时,从0开始。
- 数组的键,可以是整数,也可以是字符串,甚至是其它基本类型或null。如果是整数字符串将转换为整数,如果是布尔值将转换为0或1,如果是null将转换为空字符串。
- 使用下标,可以访问数组中的元素,如array(0=>“a”, 1=>“b”, 2=>“c”)[2],返回下标为2的元素。
- 在数组中的每个键都是唯一的,如果定义了重复的键,后边的值将覆盖相同键的前边的值。
运算符:数组运算方法,如下表所示:
运算符 | 名称 | 例子 | 结果 |
+ | 合并 | ["apple", "banana"] + ["orange", "peach"] | ["apple", "banana", "orange", "peach"] |
== | 相等 | ["apple", "banana"] == ["apple", "banana"] | true |
=== | 全等 | ["apple", "banana"] === ["apple", "banana"] | true |
["apple"] === [1=>"apple"] | false | ||
!= | 不相等 | ["apple", "banana"] != ["apple", "banana"] | false |
<> | 不相等(同上) | ["apple", "banana"] != ["banana"] | true |
!== | 不全等 | ["apple", "banana"] !== ["apple", "banana"] | false |
解释:
- 两个数组合并时,如果存在相同的键,则取运算符左边数组中的值,即出现相同键时不覆盖。
- 两个数组比较时,主要比较两个数组中的键和对应的值,其中忽略类型比较的有==、!=和<>,而同时比较大小和类型的有===和!==。
7、查看数据类型和详情
使用函数gettype()查看数据的类型,使用var_dump()函数查看数据详情。
<?php
echo gettype(array("a" => "apple", "b" => "banana"));
?>
结果为:array
解释:echo函数的括号可以省略,即echo + 空格 + 字符串,而gettype()返回一个字符串。
<?php
var_dump(array("a" => "apple", "b" => "banana"));
?>
结果为:array(2) { ["a"]=> string(5) "apple" ["b"]=> string(6) "banana" }
解释:array(2)表示有2个元素,[]符号中为键,=>符号后为带类型的值,而string(5)中的5表示长度。
<?php
print_r(array("a" => "apple", "b" => "banana"));
?>
结果为:Array( [a] => apple [b] => banana )
解释:只打印内容,不显示类型。
8、小结
今天,主要讲了PHP的数据类型及其运算符。除了浮点型的运算外,其它内容都要掌握。而浮点类型的运算比较特殊,我们将在后边的课中进行拓展。