고려사항:
$xml = "l"; $xml = "vv";
echo $xml;
vv를 에코합니다.SimpleXML 등의 여러 줄 스트링을 하는 이유와 방법은 무엇입니까?
질문에 대한 답변
음.
$xml = "l vv";
작동하다.
다음 항목도 사용할 수 있습니다.
$xml = "lnvv";
또는
$xml = <<<XML l vv XML;
코멘트에 근거해 편집:
를 사용하여 문자열을 연결할 수 있습니다..=
교환입니다.
$str = "Hello"; $str .= " World"; echo $str; //Will echo out "Hello World";
PHP에는 Geredoc 문자열과 Nowdoc 문자열이 있으며, 이는 PHP에서 여러 줄 문자열을 처리하는 가장 좋은 방법입니다.
http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc
$str = <<<EOD Example of string spanning multiple lines using heredoc syntax. $var is replaced automatically. EOD;
Nowdoc은 Leedoc과 비슷하지만 변수를 대체하지는 않습니다.
$str = <<<'EOD' Example of string spanning multiple lines using nowdoc syntax. $var is NOT replaced in a nowdoc. EOD;
“를 사용할 필요가 없습니다.EOD
” 는 시작/종료 식별자로 사용할 수 있습니다.필요한 문자열이 됩니다.
움푹 패인 곳에 주의하세요.PHP 7.3 이전 버전에서는 엔드 식별자EOD
들여쓰기를 전혀 해서는 안 됩니다.그렇지 않으면 PHP가 인식하지 않습니다.PHP 7.3 이상에서는EOD
공백 또는 탭으로 들여쓸 수 있습니다.이 경우 세레독/nowdoc 문자열의 모든 행에서 들여쓰기가 제거됩니다.
퍼포먼스 면에서 어떻게 쌓이는지는 모르겠지만, 실제로 중요하지 않은 장소에서는 이 포맷이 마음에 듭니다.이것은 PHP 파일이 저장되는 형식이 아니라 rn(CRLF)을 사용하고 있기 때문입니다.
$text="line1rn" .
"line2rn" .
"line3rn";
또한 원하는 대로 들여쓸 수 있습니다.
$xml="l" . PHP_EOL; $xml.="vv"; echo $xml;
에코:
l vv
PHP_EOL에 관한 문서.
또 다른 해결책은 출력 버퍼링을 사용하는 것입니다.출력/에코되는 모든 데이터를 수집하여 변수에 저장할 수 있습니다.
<?php ob_start();
?>line1 line2 line3<?php
$xml = ob_get_clean();
이 경우 출력 버퍼링은 성능 및 코드 청결도 측면에서 최적의 솔루션이 아닐 수 있지만 참고용으로 남겨둘 가치가 있습니다.