php手册之可变变量

手册目录: 语言参考---变量---可变变量

参考详情: https://secure.php.net/manual/zh/language.variables.variable.php

评论部分:

1. by userb@example.org

php允许你添加很多的$符号来使用可变变量,如:

<?php
$Bar = "a";
$Foo = "Bar";
$World = "Foo";
$Hello = "World";
$a = "Hello";

echo $a; //Returns Hello
echo $$a; //Returns World
echo $$$a; //Returns Foo
echo $$$$a; //Returns Bar
echo $$$$$a; //Returns a

echo $$$$$$a; //Returns Hello
echo $$$$$$$a; //Returns World
?>

2. by mason

php可以通过可变变量调用类方法,如:

<?php
class Foo {
    public function hello() {
        echo 'Hello world!';
    }
}
$my_foo = 'Foo';
$a = new $my_foo();
$a->hello(); //prints 'Hello world!'
?>
同时也可以通过可变变量调用类静态方法,如:

<?php
class Foo {
    public static function hello() {
        echo 'Hello world!';
    }
}
$my_foo = 'Foo';
$my_foo::hello(); //prints 'Hello world!'
?>

3. by dlorre@yahoo.com

定界符{}对于使用可变变量是很重要的,如下例子:

<?php
$tab = array("one", "two", "three") ;
$a = "tab" ;
$$a[] ="four" ; // <==== fatal error
print_r($tab) ;
?>
会报错,这并不是一个bug,而是书写的错误,对于$$a[]我们需要使用定界符,写程${$a}[]即可正确执行.


4. by php@ianco.co.uk

你不可以像$variable-name= 'name' 这样命名一个变量,但是你可以通过可变变量做到,如下:

<?php
$a = 'variable-name';
$$a = 'hello';
echo $$a; //output hello
?>

5. by Nathan Hammond

可能有些情景,你想要使用可变变量来动态引用超全局变量,但是是否能成功有时可能会因为当时的访问范围的变化而变化,如下例:

<?php
$_POST['asdf'] = 'something';
function test() {
    // NULL -- not what initially expected
    $string = '_POST';
    var_dump(${$string});

    // Works as expected
    var_dump(${'_POST'});

    // Works as expected
    global ${$string};
    var_dump(${$string});

}
// Works as expected
$string = '_POST';
var_dump(${$string});

test();
?>
除了test方法中的第一个引用失败,其他均成功.


如有任何错误,请及时联系并改正!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值