PHP第三部分变量介绍
变量名遵循相同的规则,在PHP的其他标签。一个有效的变量名的开头字母或下划线,其次是任意数量的字母,数字或下划线。按照正常的正则表达式,可以表述为:{ a-za-z_ x7f - xff } { a-za-z0-9_ x7f - xff } *。注:$这是一个特殊的变量,不能赋值。
变量的默认总是分配值分配。也就是说,当一个表达式的值是一个变量,整个原始表达式的值赋给对象变量。这意味着,例如,当一个变量的值是给另外一个变量,一个变量的改变值不会影响另一个变量。这种类型的配置,请参阅本章的表达。
PHP还提供了将变量赋给变量的另一种方法:引用赋值。这意味着新变量很容易引用(换句话说,是它的别名或点)原始变量。更改新变量将影响原始变量,反之亦然。
引用赋值用于将符号简单地添加到将被赋值的变量(源变量)中。
需要指出的一点是,只有具有名称的变量才能引用赋值。
复制代码代码如下所示:
< PHP
$=25;
$ bar = $;
$ =(24 * 7);非法;没有名称引用表达式
功能测试()
{
返回25;
}
$ =(测试);非法
>
虽然不需要初始化PHP变量,它是初始化一个变量,一个好习惯。未初始化的变量类型的默认值。布尔类型的默认值是false。整形和浮点变量的默认值为零。字符串类型变量默认为空字符串或数组变量的默认值为空数组。
这取决于一个未初始化的变量的默认值,在某些情况下也有问题,比如同一个变量的名字时,一个文件是包含在其他的。此外,开放register_globals是一个重大的安全隐患。使用未初始化的变量将发布一个e_notice错误,而不是当增加一个单位一个未初始化的数组。isset()的语言结构可以用来检测一个变量是否已被初始化。
预定义变量
PHP提供了大量预定义的变量。由于许多变量依赖于正在运行的服务器的版本和设置,以及其他因素,因此没有对文档的详细描述。
从PHP 4.1.0,PHP提供了一套额外的预定的阵列,其中包含从Web服务器的数据(如果有),运行环境和用户的输入,这些阵列是非常特殊的,他们自动生效在全球范围内,例如,在任何范围内自动生效。因此,它通常被称为作为一个自动全局变量(autoglobals)或超级全局变量(superglobals)。(在PHP中没有用户定义的机制超全局变量。)超级全局变量如下;然而,为了得到他们的内容,并进一步讨论关于PHP预定义变量及其本质,请参阅预定义变量。你会注意到旧的预定义数组($ http_ * _vars)仍然存在。从PHP 5.0.0,长型的PHP预定义变量数组可以用register_long_arrays设置选项。
变量范围
变量的范围是其定义的上下文(即其作用范围)。大多数PHP变量只有一个单独的范围。
PHP的全局变量与C语言有点不同。在C语言中,全局变量在函数自动生效除非它被一个本地变量。在PHP中的局部变量不会被全局变量,如果使用将该变量的默认初始值。这可能会导致一些问题,有些人可能已经改变了世界变不小心。当在PHP中的全局变量是在函数,必须声明为全局。
使用静态变量
变量范围的另一个重要特征是静态变量(静态变量),静态变量只存在于局部函数域中,但当程序执行字段时,该值不会丢失。