2012-06-27 2 views
0
변수

의 값을 변경 :PHP : 나는 다음과 같은 문자열이 문자열에 변수를 평가하고

$s1 = "Apples"; 
$s2 = "$s1 are great"; 
echo $s2; 

PHP의 나의 이해는 두 번째 줄에있는 따옴표가 $ S1을 일으킬 것입니다 문자열 내에서 평가하고, 출력은 내가 $ (S1)의 값을 변경 한 다음 새를 얻을 수를 다시 평가는 "템플릿"으로 $ s2를 유지하기를 원한다면 무엇 그러나

Apples are great 

이 될 것입니다 끈? 이게 가능한가? 예를 들어 :

$s1 = "Apples"; 
$s2 = "$s1 are great"; 
echo $s2 . "\n"; 

$s1 = "Bananas"; 
$s3 = "$s2"; 
echo $s3 . "\n"; 

나는 다음의 출력입니다 찾기 :

Apples are great 
Bananas are great 

이와 그런 일이 가능 :

Apples are great 
Apples are great 

가 무엇을 얻을 바라고하는 것은 더 같다 PHP는 "템플릿"문자열을 동일하게 유지하고 입력 변수를 변경 한 다음 새 문자열을 재평가 할 수 있습니까? 또는 PHP로 가능하지 않습니까?

+1

만족스럽지는 모르겠지만'sprintf ("% s are great", "Apples")를 사용할 수 있으며, 기능을 사용하는 것이 좋습니다 ( – mobius

+0

). – hjpotter92

답변

2

글쎄, 당신은 다음과 같이 할 수있다 : (단지 빠른 매쉬업).

$template = "{key} are great"; 
$s1 = "Apples"; 
$s2 = "Bananas"; 

echo str_replace('{key}',$s1,$template) . "\n"; 
echo str_replace('{key}',$s2,$template) . "\n"; 
1

당신은 유사한 결과를 사용 anonymous function (closure)을 시도 할 수 있습니다 : (!에만 PHP 5.3 이상)

$s1 = function($a) { 
    return $a . ' are great'; 
}; 

echo $s1('Apples'); 
echo $s1('Bananas'); 
0

당신이 원하는 때 훨씬 더 일반적 기능에 사용 비록 당신은 또한 (참조 전달을 사용할 수 있습니다 원래 수정)

<?php 

$s4 = " are great"; 
$s1 = "Apples"; 
$s2 = &$s1; 

echo $s2.$s4; 

$s1 = "Bananas"; 
$s3 = $s2; 
echo $s3.$s4; 

?> 

출력 :

관련 문제