UNPKG

manual-php

Version:
62 lines (45 loc) 1.23 kB
# 可变变量 有时候使用可变变量名是很方便的。就是说,一个变量的变量名可以动态的设置和使用。一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。 ```php <?php $foo = 'bar'; $$foo = 'baz'; var_dump($foo); // string(3) "bar" var_dump($bar); // string(3) "baz" ``` 要将可变变量用于数组,必须解决一个模棱两可的问题。 ```php <?php $foo = ['foo', 'bar', 'baz', 'qux']; $bar = 'bar'; var_dump(${$foo[1]}); // string(3) "bar" $foo = 'bar'; $bar = ['foo', 'bar', 'baz', 'qux']; var_dump(${$foo}[1]); // string(3) "bar" ``` 类的属性也可以通过可变属性名来访问。可变属性名将在该调用所处的范围内被解析。 ```php <?php class Foo { /** * Just a test property. * * @var string */ public string $bar = 'BAR'; /** * Just a test property. * * @var array */ public array $baz = ['FOO', 'BAR', 'BAZ', 'QUX']; } $foo = new Foo(); $bar = 'bar'; $baz = 'baz'; $qux = ['foo', 'bar', 'baz', 'qux']; var_dump($foo->$bar); // string(3) "BAR" var_dump($foo->{$baz}[2]); // string(3) "BAZ" var_dump($foo->{$qux[1]}); // string(3) "BAR" ```