在PHP程序中间存储信息的主要方法是使用变量。
以下是PHP中最重要的变量知识。
- PHP中的所有变量都以前导美元符号($)表示。
- 变量的值是其最近赋值的值。
- 变量分配有=运算符,左侧是变量,右侧是要计算的表达式。
- 变量可以但不需要在赋值之前声明。
- PHP中的变量没有内在类型 – 变量事先不知道它是否将用于存储数字或字符串。
- 分配前使用的变量具有默认值。
- PHP可以在必要时自动将类型从一个转换为另一个。
- PHP变量类似于Perl。
PHP总共有八种数据类型,我们用它来构造我们的变量 –
- 整数 – 是整数,没有小数点,如4195。
- 双打 – 是浮点数,如3.14159或49.1。
- 布尔值 – 只有两个可能的值,无论是真还是假。
- NULL – 是一种特殊类型,只有一个值:NULL。
- 字符串 – 是字符序列,如“PHP支持字符串操作”。
- 数组 – 是其他值的命名和索引集合。
- 对象 – 是程序员定义的类的实例,它们可以打包特定于类的其他类型的值和函数。
- 资源 – 是包含对PHP外部资源(例如数据库连接)的引用的特殊变量。
前五个是简单类型,接下来的两个(数组和对象)是复合的 – 复合类型可以打包任意类型的其他任意值,而简单类型则不能。
我们将在本章中仅解释简单的数据类型。数组和对象将单独解释。
整型
它们是整数,没有小数点,如4195.它们是最简单的类型。它们对应于简单的整数,包括正数和负数。整数可以分配给变量,也可以在表达式中使用,如下所示 –
$int_var = 12345; $another_int = -12345 + 12345;
整数可以是十进制(基数10),八进制(基数8)和十六进制(基数16)格式。十进制格式是默认格式,八进制整数用前导0指定,十六进制格式有前导0x。
对于大多数常见平台,最大整数是(2 ** 31.1)(或2,147,483,647),最小(最负)整数是。(2 ** 31.1)(或.2,147,483,647)。
双打
他们喜欢3.14159或49.1。默认情况下,使用所需的最小小数位数打印双打。例如,代码 –
<?php $many = 2.2888800; $many_2 = 2.2111200; $few = $many + $many_2; print("$many + $many_2 = $few <br>"); ?>
它产生以下浏览器输出 –
2.28888 + 2.21112 = 4.5
布尔
它们只有两个可能的值,无论是真还是假。PHP提供了一些常量,特别是用作布尔值:TRUE和FALSE,可以像这样使用 –
if (TRUE) print("This will always print<br>"); else print("This will never print<br>");
将其他类型解释为布尔值
以下是确定不属于布尔类型的任何值的“真值”的规则 –
- 如果该值是数字,则如果恰好等于零则为假,否则为真。
- 如果该值是字符串,则如果字符串为空(具有零个字符)或字符串为“0”则为false,否则为true。
- NULL类型的值始终为false。
- 如果值是数组,则如果它不包含其他值则为false,否则为true。对于对象,包含值意味着具有已分配值的成员变量。
- 有效资源为true(尽管某些在成功时返回资源的函数将在失败时返回FALSE)。
- 不要使用double作为布尔值。
当在布尔上下文中使用时,以下每个变量都在其名称中嵌入了真值。
$true_num = 3 + 0.14159; $true_str = "Tried and true" $true_array[49] = "An array element"; $false_array = array(); $false_null = NULL; $false_num = 999 - 999; $false_str = "";
空值
NULL是一种特殊类型,只有一个值:NULL。要给变量一个NULL值,只需像这样分配它 –
$my_var = NULL;
特殊常量NULL按惯例大写,但实际上它不区分大小写; 你也可以打字 –
$my_var = null;
已赋值为NULL的变量具有以下属性 –
- 它在布尔上下文中计算为FALSE。
- 使用IsSet()函数测试时,它返回FALSE。
字符串
它们是字符序列,例如“PHP支持字符串操作”。以下是字符串的有效示例
$string_1 = "This is a string in double quotes"; $string_2 = 'This is a somewhat longer, singly quoted string'; $string_39 = "This string has thirty-nine characters"; $string_0 = ""; // a string with zero characters
单引号字符串几乎按字面处理,而双引号字符串用其值替换变量以及特别解释某些字符序列。
<?php $variable = "name"; $literally = 'My $variable will not print!'; print($literally); print "<br>"; $literally = "My $variable will print!"; print($literally); ?>
这将产生以下结果 –
My $variable will not print! My name will print
字符串长度没有人为限制 – 在可用内存的范围内,你应该能够制作任意长的字符串。
由双引号分隔的字符串(如“this”中所示)由PHP以下两种方式进行预处理 –
- 以反斜杠(\)开头的某些字符序列将替换为特殊字符
- 变量名(以$开头)将替换为其值的字符串表示形式。
逃逸序列替换是 –
- \ n由换行符替换
- \ r \ n由回车符替换
- \ t由制表符替换
- \ $被美元符号本身取代($)
- \“被一个双引号(”)取代
- \\由单个反斜杠(\)替换
这里是文件
您可以使用此处文档为单个字符串变量分配多行 –
<?php $channel =<<<_XML_ <channel> <title>What's For Dinner</title> <link>http://menu.example.com/ </link> <description>Choose what to eat tonight.</description> </channel> _XML_; echo <<<END This uses the "here document" syntax to output multiple lines with variable interpolation. Note that the here document terminator must appear on a line with just a semicolon. no extra whitespace! END; print $channel; ?>
这将产生以下结果 –
This uses the "here document" syntax to output 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>
可变范围
范围可以定义为变量对声明它的程序的可用性范围。PHP变量可以是四种范围类型之一 –
- 局部变量
- 功能参数
- 全局变量
- 静态变量
变量命名
命名变量的规则是 –
- 变量名称必须以字母或下划线字符开头。
- 变量名称可以包含数字,字母,下划线,但不能使用+, – ,%,(,)等字符。&等
变量没有大小限制。