在PHP程序中间存储信息的主要方法是使用变量.
以下是PHP中最重要的变量知识.
PHP中的所有变量都以前导美元符号($)表示.
变量的值是其最近赋值的值.
变量分配了=运算符,变量位于左侧和要在右侧评估的表达式.
变量可以但不需要在赋值之前声明.
PHP中的变量没有内在类型 - 变量事先不知道它是否会用于存储数字或字符串.
在分配之前使用的变量具有默认值.
PHP在自动转换类型方面做得很好必要时从一个到另一个.
PHP vari ables类似于Perl.
PHP共有八种数据类型,我们用它来构造我们的变量 :
整数 : 是整数,没有小数点,如4195.
双打 : 是浮点数,如3.14159或49.1.
布尔值 : 只有两个可能的值为true或false.
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
它们只有两个可能的值为true或false. PHP提供了一些常量,特别是用作布尔值:TRUE和FALSE,可以像这样使用 :
if (TRUE) print("This will always print<br>"); else print("This will never print<br>");
以下是确定任何值的"真值"的规则布尔类型 :
如果值是数字,则如果恰好等于零则为false,否则为true.
如果值是字符串,如果字符串为空(字符为零)或字符串为"0"则为false,否则为true .
NULL类型的值始终为false.
如果值为如果数组不包含其他值,则为false,否则为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由回车符替换
\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变量可以是四种范围类型之一 :
本地变量
功能参数
全局变量
静态变量
命名变量的规则是 :
变量名必须以字母或下划线字符开头.
变量名称可以包含数字,字母,下划线但不能使用+, - ,%,(,)等字符. &安培;等等
变量没有大小限制.