-2

Php uses variable variables. So

$a="hello";
$$a="oops";
echo($hello) 

this gives us output:oops My question is can Variable variables be used for more levels like is $$$a defined? will

$a="hello";
$$a="oops";
$$$a="she";
echo($oops);

give us output?? If yes to what level are variable variables possible? If no why not????

4

3 回答 3

4

是的,这很好,AFAIK 它们可以无限嵌套。

但是请不要使用这些,变量变量很少是一个好主意,更不用说变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量变量

于 2012-09-26T18:47:24.443 回答
1

看来限制是相当高的。

<?php

$depth = 1;
while (true) {
    echo "// At depth {$depth}\n";

    $prefix    = str_pad('', $depth, '$');
    $statement = "{$prefix}varvar = 'var{$depth}';\n";

    echo $statement;

    eval($statement);
    $depth++;
}

只进行了轻微测试。

于 2012-09-26T18:58:21.340 回答
0

您可以将变量范围限定为堆栈的高度。它是半无限的。您可以在变量中声明变量,直到内存空间用完。然后疯狂的事情会开始发生,你的程序可能会崩溃(读起来很可能)。无论哪种方式,都不建议使用这种类型的范围。

于 2012-09-26T18:53:11.380 回答