PHP에서는 작은따옴표나 큰따옴표를 사용하여 문자열을 정의할 수 있습니다. 일반적인 사용에서는 이 두 기호로 정의된 문자열 간의 차이가 구분되지 않습니다. 오늘은 "참조별 전달 할당"의 예로 몇 줄의 코드를 작성했습니다. 이 코드에서는 작은따옴표와 큰따옴표를 모두 사용하여 문자열을 정의합니다. (코드 조각의 네 번째와 여섯 번째 줄에 주의하세요.) 아래) 실행 그런 다음 놀라운 일이 일어났습니다.
$var1="ChrisMao";//Assignthevalue"ChirsMao"를$var1에
$var2=&$var1;//Reference$var1via$var2
echo'Thevalueof$ var2is:',$var2,"
";//$var2and$var1같은 값을 가짐"ChrisMao"
$var2='mynameis$var2';//Modify$var2,thesametime$var1wasmodified
echo'$var1의 값은 다음과 같습니다:',$var1,"
";//Thevalueof$var1is"mynameis$var2"
$var2="myNewnameis$var1" ;//$var2 수정, 같은 시간$var1이 수정되었습니다
echo'The value of $var2is:',$var2,"
";//Thevalueof$var1is"myNewnameismynameis$var2"
echo'Thevalueof$var1is:',$var1,"
";//Thevalueof$var1is"myNewnameismynameis$var2"
다음 그림은 실행결과 스크린샷
혹시 이 결과를 보시고 발견하신 점이 있으신가요? 코드의 네 번째와 여섯 번째 줄에서는 한 문장은 작은따옴표를 사용하고 다른 문장은 큰따옴표를 사용한다는 점을 제외하면 코드 세그먼트와 동일한 변수 이름이 대입문 오른쪽 문자열에 나타납니다. 실행 전 예상되는 출력은 변수 값을 출력하는 것이 아니라 변수 이름을 문자열로 출력하는 것이어야 합니다. 그러나 실행 후 결과가 이전 기대와 다른 것으로 나타났습니다. 작은 따옴표를 사용한 대입문은 변수 이름을 문자열에 그대로 출력하고, 큰 따옴표를 사용한 대입문은 변수 이름을 변수의 실제 값으로 대체하여 출력합니다.
책에서 문자열 변수를 설명하는 장을 다시 열어서 주의 깊게 읽어보다가 갑자기 이 현상이 책에 설명되어 있다는 것을 발견했습니다. 큰따옴표로 묶인 문자열에서 가장 중요한 것은 변수 이름이 그것들은 가치 대체가 될 것입니다. 모두 주의 깊게 읽지 않은 잘못입니다!