PHP 共有八种内置数据类型,我们用来构造变量 -
数据类型 | 描述 |
---|---|
Integers | 没有小数点的整数,如 4195。 |
Doubles | 浮点数,如 3.14159 或 49.1。 |
Booleans | 只有两个可能的值,true 或 false。 |
NULL | 只有一个值的特殊类型:NULL。 |
Strings | 字符序列,例如 'PHP支持字符串操作'。 |
Arrays | 其他值的命名和索引集合。 |
Objects | 程序员定义的类的实例,它可以打包特定于类的其他类型的值和函数。 |
Resources | 保存对 PHP 外部资源(如数据库连接)的引用的特殊变量。 |
前 5 个是简单类型,接下来的两个 (数组和对象) 是复合类型。复合类型可以打包任意类型的其他任意值,而简单类型则不能。
PHP 数据类型:Integer
没有小数点的整数(如 4195)在 PHP 中是 int 类型。整数数据类型是最简单的类型。它们对应于简单的整数,包括正数和负数。
- int 是集合 Z = {..., -2, -1, 0, 1, 2, ...} 中的数字。
- int 可以用十进制 (base 10)、十六进制 (base 16)、八进制 (base 8) 或二进制 (base 2) 表示法。
要使用八进制表示法,数字前面有 “0o” 或 “0O”。要使用十六进制表示法,请在数字前面加上 “0x”。要使用二进制表示法,请在数字前面加上 “0b”。
下面给出了一些示例——
- 十进制整数 − 201, 4195, -15
- 八进制整数 − 0010, 0O12, -0O21
- 十六进制整数 − 0x10, -0x100
- 二进制整数 − 0b10101, -0b100
整数可以分配给变量,也可以用于表达式,如下所示 -
PHP 数据类型:Double
双精度(Double )变量表示浮点数(也称为“浮点数”、“双精度数”或“实数”),它们是具有小数分量的数字。小数分量跟在由十进制符号 (.) 分隔的整数分量之后。
注意:双精度(Double )变量可以是正数、负数或零。
科学浮点数法
PHP 还允许使用科学记数法来表示小数点后具有更多数字的浮点数。符号 “E” 或 “e” 用于分隔整数部分和小数部分。
默认情况下,双倍打印具有所需的最小小数位数。请看下面的例子 -
它生成以下输出 -
PHP 数据类型:Bool
bool 类型只有两个值;它可以是 True 或 False。bool 类型用于表示 True 值。
您还可以使用整数值 “1” 和 “0” 来表示 True 和 False 布尔值 -
通常,返回 bool 值的运算符的结果会传递给控制结构,例如 if、while 或 do-while。例如
将其他数据类型解释为布尔值
以下是一组规则,您可以使用这些规则将其他数据类型解释为布尔值 -
- 如果值是一个数字,则仅当值等于零时,它才为 False,否则值为 True。
- 如果值是字符串,则如果字符串为空(字符为零)或字符串 “0”,则为 False,否则为 True。
- NULL 类型的值始终为 False。
- 如果值是数组,则如果它不包含其他值,则为 False;否则为 True。对于对象,包含值意味着具有已分配值的成员变量。
- 有效资源为 true(尽管某些在成功时返回资源的函数将在不成功时返回 FALSE)。
注意:不要将 double 用作布尔值。
以下每个变量在布尔上下文中使用时,其名称中都嵌入了 truth 值。
PHP 数据类型:string
字符串(string )是字符序列,例如,'PHP支持字符串操作'。
在 PHP ,字符等同于字节。这意味着 PHP 仅支持 256 个字符集,因此不提供本机 Unicode 支持。
PHP 支持单引号和双引号字符串格式。以下两种表示形式在 PHP 中都有效 -
以下是字符串类型的更多示例 -
单引号字符串几乎按字面意思处理,而双引号字符串用其值替换变量,并专门解释某些字符序列。
当您运行此代码时,它将生成以下输出 -
My name will print
字符串长度没有人为限制。在可用内存的范围内,您应该能够创建任意长的字符串。
PHP 以以下两种方式对由双引号分隔的字符串(如 “this”)进行预处理 -
- 某些以反斜杠 (\) 开头的字符序列将替换为特殊字符。
- 变量名称(以 $ 开头)将替换为其值的字符串表示形式。
转义序列替换是 −
- \n 替换为换行符
- \r 替换为回车字符
- \t 替换为制表符
- \$ 替换为美元符号本身 ($)
- \" 替换为单个双引号 (”)
- \\ 替换为单个反斜杠 (\)
PHP 还具有字符串数据类型的 Heredoc 和 Nowdoc 表示形式。
字符串数据类型的 Heredoc 表示
您可以使用 heredoc 将多行分配给单个字符串变量 -
当您运行此代码时,它将生成以下输出 -
multiple lines with variable interpolation. Note
that the here document terminator must appear on a
line with just a semicolon. no extra whitespace!
<channel>
<title>What's For Dinner</title>
<link>http://menu.example.com/ </link>
<description>Choose what to eat tonight.</description>
</channel>
字符串数据类型的 nowdoc 表示形式
heredoc 标识符的所有规则也适用于 nowdoc 标识符。nowdoc 的指定方式与 heredoc 一样,但 nowdoc 内部没有解析。您可以使用 nowdoc 构造嵌入大块文本,而无需使用任何转义字符。
nowdoc 使用与 heredocs 相同的 <<< 序列标识,但标识符用单引号括起来,例如 <<<'EOT'。nowdocs 适用于单引号字符串,就像 heredocs 适用于双引号字符串一样。
请看下面的例子 -
运行代码并检查其输出 -
the squirrel chirped excitedly about its latest
discovery of a hidden stash of peanut treasure!
PHP 数据类型:NULL
null 表示只有一个值的特殊类型:NULL。undefined 和 unset() 变量将解析为值 “null”。
程序员通常在 PHP 使用 Null 数据类型来初始化变量或指示缺少值。
要给变量 NULL 值,只需像这样分配它 -
特殊常量 NULL 按照惯例大写,但实际上它不区分大小写;您也可以键入 -
已分配为 NULL 的变量具有以下属性 -
- 它在布尔上下文中计算结果为 FALSE。
- 使用 IsSet() 函数进行测试时,它返回 FALSE。
注意: PHP 中变量的数据类型是在运行时根据分配给它们的值确定的。
PHP 数据类型:array
PHP 的数组是一个有序映射,一个键与一个或多个值相关联。PHP 数组是使用 array() 函数定义的,或者使用短表示法定义,其中数据放在方括号中。
看看下面的关联数组示例 -
使用 array() 函数
使用短表示法
PHP 数组也可以使用 “key-value pair” 语法定义。它称为索引数组。
在多维数组中,主数组中的每个元素也可以是一个数组。而且,子数组中的每个元素都可以是一个数组,依此类推。使用多个索引访问多维数组中的值。
注意: 在 PHP 中,复合数据类型用于存储数据集合,包括数组和对象。
PHP 数据类型:Objects
对象(Objects)类型是程序员定义的类的实例,它可以打包特定于该类的其他类型的值和函数。
要创建新对象,请使用 new 语句实例化类 -
PHP 数据类型:Resources
资源 (Resources)是特殊的变量,用于保存对 PHP 外部资源(例如文件流或数据库连接)的引用。
下面是一个文件资源示例 -
属于上述任何类型的数据都存储在变量中。但是,由于 PHP 是一种动态类型语言,因此无需指定变量的类型,因为这将在运行时确定。
示例:gettype() 函数
gettype() 函数有助于找出变量中存储的数据类型 -
当您运行此代码时,它将生成以下输出 -
double
array