可变变量
可变变量指名称可变化的变量。
class foo {
var $bar = 'I am bar.';
var $arr = array('I am A.', 'I am B.', 'I am C.');
var $r = 'I am r.';
}
$start = 'b';
$end = 'ar';
echo $foo->{$start . $end} . "\n"; // I am bar.
$arr = 'arr';
echo $foo->$arr[1] . "\n"; // I am r.
echo $foo->{$arr}[1] . "\n"; // I am B.
$Bar = "a";
$Foo = "Bar";
$World = "Foo";
$Hello = "World";
$a = "Hello";
$a; //Returns Hello
$$a; //Returns World
$$$a; //Returns Foo
从上面的例子看,某种意义上像复杂的语法糖,这里面还涉及到优先级,所以不太建议这样用,清晰有时候比简洁更重要。
超全局变量
超全局变量属于预定义变量,只不过它们更特殊,它们可以在全部作用域中始终可用。
- $GLOBALS
- $_SERVER
- $_GET
- $_POST
- $_FILES
- $_COOKIE
- $_SESSION
- $_REQUEST
- $_ENV
预定义变量
- $_COOKIE
- $php_errormsg
- $HTTP_RAW_POST_DATA
- $http_response_header
- $argc
- $argv