PHP에서 HEREDOC 문자열 선언은 html 블록을 출력하는 데 정말 유용합니다. $ 접두사로 변수를 구문 분석 할 수 있지만 더 복잡한 구문 (예 : $ var [2] [3])의 경우 식을 {} 중괄호 안에 넣어야합니다.
PHP 5에서는 입니다 실제로 히어 닥 문자열 안에 {} 중괄호 내에서 함수 호출을 할 수 있지만 약간의 작업을 통해 이동해야합니다. 함수 이름 자체는 변수에 저장되어야하며 동적으로 이름이 지정된 함수처럼 호출해야합니다. 예를 들면 :
$fn = 'testfunction';
function testfunction() { return 'ok'; }
$string = <<< heredoc
plain text and now a function: {$fn()}
heredoc;
보시다시피 이것은 단순한 것보다 조금 더 지저분합니다.
$string = <<< heredoc
plain text and now a function: {testfunction()}
heredoc;
첫 번째 코드 예제 외에 함수를 호출하기 위해 HEREDOC에서 벗어나거나 문제를 되돌리고 다음과 같은 작업을 수행하는 것과 같은 다른 방법이 있습니다.
?>
<!-- directly output html and only breaking into php for the function -->
plain text and now a function: <?PHP print testfunction(); ?>
후자는 출력이 출력 스트림에 직접 입력된다는 단점이 있습니다 (출력 버퍼링을 사용하지 않는 한).
그래서, 내 질문의 본질은 : 이것에 접근하는 더 우아한 방법이 있습니까?
응답을 기반으로 편집 : 어떤 종류의 템플릿 엔진이 내 삶을 훨씬 더 쉽게 만들어 줄 것 같지만 기본적으로 평소의 PHP 스타일을 뒤집어 야합니다. 그게 나쁜 건 아니지만 제 관성을 설명 해줍니다.하지만 삶을 더 쉽게 만드는 방법을 찾아야해서 지금은 템플릿을 살펴보고 있습니다.
Text {$string1} Text {$string2} Text
heredoc에서 와 같이 간단히 사용할 수 있습니다 .