将信息存储在一个PHP程序中的主要方法是使用变量。
这里是了解PHP中的变量重要的几个知识。
在PHP中所有的变量都标注有一个前导美元符号 ($).
一个变量的值是其最近分配的值.
变量赋以=运算符,左侧的为变量名称,在右侧则是要计算的表达式.
变量可以,但也可以不需要赋值前必须声明,也就是说,可声明可不声明.
PHP中的变量没有固有类型 - 一个变量不用事先知道它是会被用来存储一个数字还是字符串.
他们被使用之前变量有分配默认值.
在必要的时候,PHP能非常完好地自动将类型转换从一种类型到另一种类型.
PHP变量与Perl类似.
PHP总共有八个数据类型,可用它来构建变量:
整型: 全是数字,没有小数点,如 4195.
浮点型: 是浮点数,如 3.14159 或 49.1.
布尔型: 只有两个可能的值:true或false。
NULL: 是一种特殊类型,只具有一个值: NULL.
字符串: 是字符的序列,如“PHP支持的字符串操作."
数组: 命名和索引的其他值的集合。
对象: 是程序员定义的类,它可以打包两个其他种类的值和函数所特有的类的实例。
资源: 是外部引用的资源保持到PHP(如数据库连接)的特殊变量。
前面5个是“简单类型”, 而接下来的两个(数组和对象)是复合 - 复合类型可以打包任意类型的其他任意值,而简单类型是不能的。
我们将在本章节只解释比喻的数据类型。数组和对象将另外章节在了解和学习。
整型:
他们全是数字,没有小数点,比如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。默认情况下,用浮点数所需的小数位数的最小数量。例如,代码:
$many = 2.2888800; $many_2 = 2.2111200; $few = $many + $many_2; print(.$many + $many_2 = $few<br>.); |
它在浏览器产生以下输出:
布尔类型:
它们只有两个可能的值: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。对于一个对象,其中包含一个值是指具有已赋值的成员变量。
有效的资源的值是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。给一个变量NULL值,分配值它是这样的:
特殊常量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 |
单引号字符串被视为几乎从字面上是一样的,而双引号字符串会有替换变量的值,以及解释某些字符序列。
<? $variable = "name"; $literally = 'My $variable will not print!\\n'; print($literally); $literally = "My $variable will print!\\n"; print($literally); ?> |
这将产生以下结果:这将产生以下结果:
My $variable will not print!\n My name will print |
有关于字符串的长度没有人为限制 - 可用在内存的范围内,应该能够使任意长的字符串。
这是用双引号分隔(如“this”)字符串是由PHP的预处理均通过以下两种方式:
用反斜杠(\)开头的某些字符序列替换为特殊字符
变量名(从$)被替换为它们的值的字符串表示形式。
转义序列替换为:
\n被替换为换行符
\r 被替换回车符
\t 被替换为制表符
\$ 被替换的美元符号本身 ($)
\" 被替换为单一的双引号(")
\\ 被替换为单个反斜杠 (\)
here文档:
可分配多个行使用此文档中的单个字符串变量:
<?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! <br /> 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变量可以是以下四种范围类型:
局部变量
函数参数
全局变量
静态变量
变量命名:
命名规则的变量是:
变量名必须以字母或下划线字符。
变量名可以包含数字,字母,下划线,但不能使用以下字符: + , - , % , ( , ) . &
等
变量没有大小的限制,想用多长就多长。
|