PHP中的变量
PHP中,变量需要声明吗
PHP中,当第一次给一个变量赋值的时候,就是声明并且定义这个变量
变量的变量
所谓变量的变量,是如下形式:
$foo = "bar"; $$foo = "baz"; //变量的变量
变量的变量就是$符号前面,可以是其他变量名,这样,这个变量名所引用的值就被声明成了另一个变量。
上面的例子中,变量$foo引用的值"bar"被声明成另一个变量,即变量$bar,它的值是"baz"。
变量的引用
PHP中变量的引用,类似C++中变量的引用,是同一个变量的别名:
//两个变量一样的值 $bigLongVariableName = "PHP"; $short =& $bigLongVariableName; $bigLongVariableName .= " rocks!"; print "\$short is $short\n"; print "Long is $bigLongVariableName\n"; $short is PHP rocks! Long is PHP rocks! //两个变量一样的值 $short = "Programming $short"; print "\$short is $short\n"; print "Long is $bigLongVariableName\n"; $short is Programming PHP rocks! Long is Programming PHP rocks!
在PHP中,函数的参数,返回值,都可以是引用。
需要注意的是,unset一个变量,另一个变量不受影响:
$white = "snow"; $black =& $white; unset($white); print $black; snow
全局变量
一个变量,如果声明在函数外面,就是全局的。注意,这里和C语言不一样,在C语言中,声明在块结构里面的变量都是局部变量,而PHP中,只要不是声明在函数中,即便是声明在块结构中,也是全局变量。
静态变量
PHP中,函数里面可以使用static关键字声明静态变量,效果和C语言当中一样。
经过试验,在函数外面使用static关键字声明变量,并不能保证这个变量具有文件作用域。
变量的作用域
在PHP中,声明在函数内部的变量是局部变量,只有函数内部才可以访问,声明在函数外部的都是全局变量。
同时需要注意,函数内部如果不经特殊处理,是访问不了函数外面声明的变量的(这个和JavaScript不一样,到时和Python类似)。