2012-09-26 3 views
-2

PHP는 가변 변수를 사용합니다. 그래서

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

이 우리에게 출력을 제공 : 죄송합니다 내 질문은 가변 변수가 정의 된 $$$처럼 더 수준에 사용할 수 있습니까? 은

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

출력을 제공합니까 ?? 변수 값이 예인 경우 가능한 변수는 무엇입니까? 왜 안되는 경우 ?? ????

+14

테스트 할 수있는 방법이 있다면 ... –

+0

예비 테스트에서 무엇을 보여 줬습니까? – Lix

+2

@ i-lo - [so] Q & A 형식은 실제로 토론에 맞지 않습니다. 여기서 질문은 실제 문제에 대한 구체적 해답을 제공 할만큼 구체적이어야합니다. 아마 [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++; 
} 

가볍게 테스트되었습니다.