1.普通变量$a = "hello";2.可变变量(使用两个美元符号($))$$a = "world";两个变量都被定义了:$a 的内容是“hello”并且 $hello 的内容是“world”。
因此,可以表述为:echo "$a ${$a}";或者 echo "$a $hello";它们都会输出:hello world。
要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下 $$a[1] 时,解析器需要知道是想要 $a[1] 作为一个变量呢,还是想要 $$a 作为一个变量并取出该变量中索引为 [1] 的值。解决此问题的语法是,对第一种情况用 ${$a[1]},对第二种情况用 ${$a}[1]。
3.静态变量 在函数内部static $a = 0;
注意:声明中用表达式的结果对其赋值会导致解析错误如static $a =3+3;(error)
静态变量仅在局部函数域中存在(函数内部),函数执行完之后,变量值不会丢失,可用于递归调用。
4.全局变量在函数体内定义的global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用,在全局范围内访问变量可以用特殊的 PHP 自定义 $GLOBALS 数组:
如:$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
在一个函数域内用 global 语句导入的一个真正的全局变量实际上是建立了一个到全局变量的引用如global $obj;
5.给变量赋值:传地址赋值(简单引用): $bar = &$foo; //加&符号到将要赋值的变量前。
改动新的变量将影响到原始变量,这种赋值操作更加快速
注意:只有命名变量才可以传地址赋值。举例如下:
$bar = &$a;
$bar = &$foo;
改变$bar的值只能改变变量foo的值,而不改变a的值(引用改变了)
本文版权归黑马程序员
php培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:黑马程序员php培训学院