예를 들어 $smarty.const.'constant'는 사용할 수 없습니다.
사실 템플릿 엔진은 원칙적으로 복잡하지 않습니다. 단지 일부 템플릿 태그를 PHP의 함수, 변수, 문법 구조로 대체할 뿐입니다.
이번에 ecshop 템플릿에 참조 상수 기능을 추가하려면 make_var() 함수에 코드 두 줄만 추가하면 됩니다.
코드 복사 코드는 다음과 같습니다.
function make_var($val)
{
if (strrpos($val, '.') === false)
{
if (isset( $this->_var[$val]) && isset($this->_patchstack[$val]))
{
$val = $this->_patchstack[$val ];
}
$p = '$this->_var['' . $val . '']'
else
{
$t = 폭발 ('.', $val);
$_var_name = array_shift($t)
if (isset($this->_var[$_var_name]) && isset($this->_patchstack[$ _var_name]))
{
$_var_name = $this->_patchstack[$_var_name]
}
if ($_var_name == 'smarty')
{
if ($t[0 ] == 'const'){
return strtoupper($t[1])
}
$p = $this->_compile_smarty_ref($t); }
else
{
$p = '$this->_var['' . $_var_name . '']'
}
foreach($t AS $val)
{
$p.= '['' . $val . '']'
}
}
return $p; >where 21-23 템플릿 파일의 {$smarty.const.const}를 통해 PHP에 정의된 상수를 참조할 수 있는 라인이 새로 추가되었습니다.
코드 복사
21 if($t[0] == 'const'){ 22 return strtoupper($t[1]) 23 }
위에서는 ecshop 템플릿의 내용을 포함하여 ecshop 템플릿에서 상수를 참조 가능하게 만드는 구현 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.