变数是储存资讯的容器:
例项
类似代数
x=5
y=6
z=x+y
在代数中我们使用字母(比如 x)来储存值(比如 5)。
从上面的表示式 z=x+y,我们能够计算出 z 的值是 11 。
在 PHP 中,这三个字母被称为变数。
注释:请把变数视为储存资料的容器。
PHP 变数
正如代数,PHP 变数可用于储存值(x=5)和表示式(z=x+y)。
变数的名称可以很短(比如 x 和 y),也可以取更具描述性的名称(比如 carname 、 total_volume)。
PHP 变数规则:
变数以 $ 符号开头,其后是变数的名称
变数名称必须以字母或下划线开头
变数名称不能以数字开头
变数名称只能包含字母数字字元和下划线(A-z 、 0-9 以及 _)
变数名称对大小写敏感($y 与 $Y 是两个不同的变数)
注释:PHP 变数名称对大小写敏感!
建立 PHP 变数
PHP 没有建立变数的命令。
变数会在首次为其赋值时被建立:
例项
以上语句执行后,变数 txt 会储存值 Hello world!,变数 x 会储存值 5,变数 y 会储存值 10.5 。
注释:如果您为变数赋的值是文字,请用引号包围该值。
PHP 是一门型别松散的语言
在上面的例子中,请注意我们不必告知 PHP 变数的资料型别。
PHP 根据它的值,自动把变数转换为正确的资料型别。
在诸如 C 和 C++ 以及 Java 之类的语言中,程式设计师必须在使用变数之前宣告它的名称和型别。
PHP 变数作用域
在 PHP 中,可以在指令码的任意位置对变数进行宣告。
变数的作用域指的是变数能够被引用/使用的那部分指令码。
PHP 有三种不同的变数作用域:
local(区域性)
global(全域性)
static(静态)
Local 和 Global 作用域
函式之外宣告的变数拥有 Global 作用域,只能在函式以外进行访问。
函式内部宣告的变数拥有 LOCAL 作用域,只能在函式内部进行访问。
下面的例子测试了带有区域性和全域性作用域的变数:
例项
测试函式内部的变数:
“;
echo “ 变数 x 是:$x”;
echo “
“;
echo “ 变数 y 是:$y”;
}
myTest();
echo “
测试函式之外的变数:
“;
echo “ 变数 x 是:$x”;
echo “
“;
echo “ 变数 y 是:$y”;
?>
在上例中,有两个变数 $x 和 $y,以及一个函式 myTest() 。 $x 是全域性变数,因为它是在函式之外宣告的,而 $y 是区域性变数,因为它是在函式内宣告的。
如果我们在 myTest() 函式内部输出两个变数的值,$y 会输出在本地宣告的值,但是无法 $x 的值,因为它在函式之外建立。
然后,如果在 myTest() 函式之外输出两个变数的值,那么会输出 $x 的值,但是不会输出 $y 的值,因为它是区域性变数,并且在 myTest() 内部建立。
注释:您可以在不同的函式中建立名称相同的区域性变数,因为区域性变数只能被在其中建立它的函式识别。
PHP global 站群关键词 TDK
global 站群关键词 TDK 用于访问函式内的全域性变数。
要做到这一点,请在(函式内部)变数前面使用 global 站群关键词 TDK:
例项
PHP 同时在名为 $GLOBALS[index] 的阵列中储存了所有的全域性变数。下标存有变数名。这个阵列在函式内也可以访问,并能够用于直接更新全域性变数。
上面的例子可以这样重写:
例项
PHP static 站群关键词 TDK
通常,当函式完成/执行后,会删除所有变数。不过,有时我需要不删除某个区域性变数。实现这一点需要更进一步的工作。
要完成这一点,请在您首次宣告变数时使用 static 站群关键词 TDK:
例项
然后,每当函式被呼叫时,这个变数所储存的资讯都是函式最后一次被呼叫时所包含的资讯。
注释:该变数仍然是函式的区域性变数。