2011-11-06 2 views
2

PHP에서 echo를 사용할 때 변수 이름을 따옴표로 묶은 문자열에 넣을 수는 있지만 세션 변수로는이를 수행 할 수 없다는 것을 알고 있습니다. 왜 그 이유를 설명 할 수 있습니까? 여기 PHP에서 세션 변수를 에코하기

는 주석은 "잘못된"PHP와 코드입니다 :

<?php 
session_start(); 
$test = 100; 
$_SESSION['test'] = 200; 
?> 
<html> 
    <head> 
    <title>Test</title> 
    </head> 
    <body> 
    <p><?php echo($test."<br />");?></p> 
    <p><?php echo("$test"."<br />");?></p> 
    <p><?php echo($_SESSION['test']."<br />");?></p> 
    <p><?php //echo("$_SESSION['test']"."<br />");?></p> 
    </body> 
</html> 

그리고 출력은 다음과 같습니다

100 

100 

200 

을하지만 잘못된 코드 행의 주석을 해제하는 경우 :

<p><?php echo("$_SESSION['test']"."<br />");?></p> 

출력이없고 다음 오류가 발생합니다.

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in - on line 14 

그래서 올바르게 (그냥 따옴표 밖에있는 세션 변수를 유지하는 방법을 알기 때문에) 즐겁게 할 수 있지만 세션 변수가 작동하지 않는 이유를 알고 싶습니다.

감사합니다.

<p><?php echo("{$_SESSION['test']}"."<br />");?></p> 

이 특별히 $_SESSION에 문제가 있지만 인용 키에 액세스 어떤 배열이되지 않습니다 : 당신이 {}에서 복잡한 변수 (배열 또는 객체의 속성)로 묶어야합니다 이중 인용 된 문자열 내부

+0

에서 당신이 {}의 포장과 숫자 인덱스 배열 값을 포함 할 수 있음에 유의 . – hakre

+0

감사합니다 ... 나는 그 페이지를 읽었지만 당신의 코멘트 후에 다시 읽었고 그 페이지에서 다른 사람들이 설명해야했던 링크가 있다는 것을 깨달았습니다. 사소한 질문을해서 죄송합니다. :-) – doxguy

답변

16

. 대신`http://php.net/strings, 사용`{$ var에} : 문자열에 대한 PHP 매뉴얼을 읽어 보시기 바랍니다 "echo $array[2] is two";