PHP 변수를 문자열 리터럴과 혼합


140

변수가 $test있고 다음과 같이 정의되어 있다고 가정 해보십시오 .$test = 'cheese'

cheesey다음과 같이 출력 할 수 있습니다.

echo $test . 'y'

그러나 코드를 다음과 같이 단순화하는 것이 좋습니다 (작동하지 않음).

echo "$testy"

y변수와 분리 된 것처럼 취급 할 수 있는 방법이 있습니까?


1
에 의해 $test = cheese;당신은 의미 $test = 'cheese'; (내가 잘못 아니에요 경우) 마지막 게시물에서 ...
추방

답변:


242
echo "{$test}y";

문자열에서 변수를 직접 보간 할 때 중괄호를 사용하여 모호성을 제거 할 수 있습니다.

또한 작은 따옴표로는 작동하지 않습니다. 그래서:

echo '{$test}y';

출력합니다

{$test}y

1
그런 메소드로 함수 호출을 인라인 할 수도 있습니까? 비슷한"foo{implode(',', [abc])}bar"
velop

@ 벨롭 문자열 생성은 종종 처리가 수행 된 후에 수행됩니다. 출력을 준비하는 도중에 함수를 호출하면 원하는 결과를 얻지 못하는 경우가 많습니다. 먼저 함수를 호출하고 결과를 변수에 저장 한 다음 string에 포함시킬 수 있습니다 echo "like so: $var";.
Jochem Kuijpers

문자열에 두 개의 diff 문자열로 평가되는 삼항 연산자를 포함시키는 방법은 무엇입니까?
oldboy

50

{}arround 를 사용 하여 다음과 분리 할 수 있습니다 .

echo "{$test}y"

참고로 PHP 매뉴얼 의 Variable parsing-Complex (curly) syntax 섹션을 살펴볼 수 있습니다 .


감사. 나는 문자열 매뉴얼을 읽으려고했지만 정확히 내가 무엇을 찾은지 내가 무엇을 찾고 있었는지 확신하지 못했습니다.
매트 맥도날드

2
당신은 환영합니다 :-) 그래, 당신이 찾고있는 것을 정말로 모른다면, 항상 올바른 섹션을 찾기 쉽지는 않습니다 ^^
Pascal MARTIN

{} 안에 들어가면 {$ x-> y [3]}과 같은 변수 이름뿐만 아니라 표현식도 사용할 수 있습니다.
TextGeek

3

예:

$test = "chees";
"${test}y";

출력됩니다 :

치즈

바로 당신이 찾고있는 것입니다.


-3
$bucket = '$node->' . $fieldname . "['und'][0]['value'] = " . '$form_state' . "['values']['" . $fieldname . "']";

print $bucket;

수율 :

$node->mindd_2_study_status['und'][0]['value'] = $form_state['values']
['mindd_2_study_status']
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.