2014-11-19 2 views
0

무수한 if/else 문을 생성하고 대신 미리 정의 된 변수 (또는 상수)를 사용하고 싶습니다.상수로부터 변수 생성하기

DEFINE('LANG',$current_lang); 

그것은 pl 또는 en 중 하나를 반환합니다.

$pl = getid('o-nas'); 
$en = pll_get_post($pl, 'en'); 

어떻게 내가 LANG으로 앞에서 정의한 하나를 인쇄 할 수 있습니다 : 그리고 지금은 두 변수가? 아니면 더 나은 해결책이 있습니까? 여러 가지 사례가 있지만, LANG은 항상 그 둘 중 하나입니다.

답변

2

이 경우의 변수 변수 구문은 다음과 같습니다이 반드시 국제화에 가장 좋은 방법은 아니지만, 당신의 직접적인 질문에 대한 답 것을

define('FOO', 'bar'); 

$foo = 'baz'; 
$bar = 42; 

echo ${FOO}; // 42 

참고. 이 개선에
첫 번째 단계는 단순히 우선 배열을 사용할 수 있습니다 :

$content = [ 
    'en' => .., 
    'pl' => .. 
]; 
echo $content[LANG]; 

의도 여기 구문이 훨씬 더 분명하고 읽을 수 있습니다.

+0

와우, 전에 본적이 없네 ;-) 고마워, 나에게 많은 문제를 줄 것이다! (실제로 나는 매뉴얼에서 그것을 보았지만, 지금까지는 두 번 고마워하지 않았다.) –

+0

내 업데이트를 놓치지 마세요. – deceze

+0

'i18n'에 대한 최선의 방법이 아니라는 것을 알고 있지만 WordPress의'get_post' 함수를 사용하므로 페이지의 'id'를 가져 와서 올바른 것을 표시하는 데 관심이 있습니다. –

관련 문제