2012-09-26 95 views
-2

Php使用变量变量。 所以

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

这给我们的输出:哎呀 我的问题是可以可变变量用于多个级别 喜欢的是$$$定义的? 将

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

给我们输出?如果是,变量变量可能在什么水平上? 如果没有,为什么不?

+14

如果只有自己测试的方法... –

+0

您的初步测试显示了什么? – Lix

+2

@ i-lo - [so]问答格式并非真正面向讨论。这里的问题必须足够具体,才能为实际问题提供具体的答案。你可以前往[php聊天室](http://chat.stackoverflow.com/rooms/11/php)并在那里进行讨论。 – Lix

回答

4

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

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

0

您可以将变量作用于堆栈的高度。它是半无限的。您可以在变量内声明变量,直到内存空间不足。然后疯狂的疯狂事情将会开始发生,并且你的程序可能会崩溃(真的很有可能)。无论哪种方式,这种类型的范围不建议。

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++; 
} 

只轻微测试。