2014-07-23 3 views
0

main.tpl :변경 배열

{$array=['first']} 
{include file="sub.tpl"} 
{var_dump($array)} 

sub.tpl :

{$array[]='second'} 
{var_dump($array)} 

Restults에서 :

array (size=2) 
    0 => string 'first' (length=5) 
    1 => string 'second' (length=6) 
array (size=1) 
    0 => string 'first' (length=5) 

가 어떻게 참조 $array을 전달할 수 'second'이되도록이후 $array에도이 완료 되었습니까?

답변

0

해결책이 있지만 실제로 Smarty 사용법을 재고해야합니다. Smarty는 데이터를 표시하는 데만 사용해야하며 사실 임시 변수를 만들어야하고 배열에 대한 생성/추가가 이러한 경우는 아닌 것으로 보입니다.

가능한 경우 항상 PHP로 표시 할 데이터를 준비하고 Smarty simple에서는 복잡한 계산과 할당을하지 않고 표시해야합니다.

{$array[]='second' scope='global'} 

위 또는 범위 parent 등의 범위 global과 : 귀하의 경우에는

당신은 그래서 당신이 사용해야 scope를 사용해야합니다.

그러나 내가 말했듯이 PHP에서는 더 나은 방법으로 할 수 있습니다.