이 글에서는 ThinkPHP 템플릿 엔진의 변수 출력 사용법을 예제를 통해 분석합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
우리는 Action에서 할당 메소드를 사용하여 템플릿 변수에 값을 할당할 수 있다는 것을 이미 알고 있습니다. 할당 후 템플릿 파일에 변수 값을 어떻게 출력합니까?
Action에서 이름 템플릿 변수를 할당하는 경우:
$name = 'ThinkPHP';
$this->할당('이름',$name);
내장된 템플릿 엔진을 사용하여 변수를 출력하고 템플릿 파일에서 사용하세요.
{$name}
템플릿 컴파일 후의 결과는
마지막으로 실행하면 라벨 위치에 ThinkPHP의 출력 결과가 표시됩니다. 템플릿 라벨에는 {와 $ 사이에 공백이 있으면 안 됩니다. 그렇지 않으면 라벨이 유효하지 않게 됩니다. 일반 태그의 기본 시작 태그는 {이고, 종료 태그는 }입니다. TMPL_L_DELIM 및 TMPL_R_DELIM을 설정하여 변경할 수도 있습니다. 예를 들어 프로젝트 구성 파일
에서 정의합니다.
'TMPL_L_DELIM'=>'<{',
'TMPL_R_DELIM'=>'}>',
그런 다음 위의 변수 출력 레이블을 다음으로 변경해야 합니다.
<{$name}>
기본 태그 정의를 사용하여 다음 내용을 설명하겠습니다. 할당 메소드의 첫 번째 매개변수는 템플릿 파일에서 사용되는 변수 이름입니다.
$name = 'ThinkPHP';
$this->할당('name2',$name);
{$name}을 다시 사용하면 출력이 유효하지 않게 됩니다. 템플릿 변수에 사용자 데이터 개체를 할당해야 하는 경우에는 {$name2}를 사용해야 합니다.
$User = M('name');
$user = $User->find(1);
$this->할당('사용자',$user);
즉, $user는 실제로 배열 변수입니다. 다음 방법을 사용하여 관련 값을 출력할 수 있습니다.
{$user['name']}//사용자 이름 출력
{$user['email']} //사용자의 이메일 주소 출력
$user가 배열이 아닌 객체인 경우
$User = M('name');
$User->find(1);
$this->할당('사용자',$User);
다음 방법을 사용하여 관련 속성 값을 출력할 수 있습니다.
{$user:name}// 사용자 이름 출력
{$user:email} // 사용자의 이메일 주소 출력
버전 3.1 이후에는 클래스 속성 출력 방법이 기본 PHP 객체 작성을 지원하도록 조정되었으므로 위 태그를 다음으로 변경해야 합니다.
{$user->name}// 사용자 이름 출력
{$user->email} // 사용자의 이메일 주소 출력
템플릿 정의를 용이하게 하기 위해 점 구문도 지원될 수 있습니다. 예를 들어 위의
{$user['name']}// 사용자 이름 출력
{$user['email']} // 사용자의 이메일 주소 출력
로 변경 가능
{$user.name}
{$user.email}
도트 구문의 기본 출력은 배열 모드이므로 위의 두 가지 방법은 구성 없이 동일합니다. TMPL_VAR_IDENTIFY 매개변수를 구성하여 도트 구문의 출력 효과를 확인할 수 있습니다. {$ user.name}
TMPL_VAR_IDENTIFY가 배열로 설정된 경우
{$user.name}은 출력 배열 변수인 {$user['name']}과 동일합니다.
TMPL_VAR_IDENTIFY가 obj로 설정된 경우
{$user.name}은 출력 개체의 속성인 {$user:name}과 동일합니다.
TMPL_VAR_IDENTIFY를 비워 두면 출력할 변수가 배열인지 객체인지 시스템이 자동으로 판단합니다. 이 방법은 어느 정도 효율성에 영향을 미치며 2차원 배열 및 2단계 객체 속성만 지원합니다. .
다차원 배열이나 다층 객체 속성의 출력인 경우 다음 정의 방법을 사용할 수 있습니다.
{$user.sub.name}//점식 구문을 사용하여 출력합니다.
또는
을 사용하세요.
{$user['sub']['name']}/ / 3D 배열 값 출력
{$user:sub:name}// 객체의 다중 레벨 속성 출력
이 기사가 ThinkPHP 프레임워크를 기반으로 하는 모든 사람의 PHP 프로그래밍에 도움이 되기를 바랍니다.