programing

PHP의 다중 줄 문자열 리터럴

subpage 2023. 8. 27. 09:18
반응형

PHP의 다중 줄 문자열 리터럴

고려 사항:

$xml = "l";
$xml = "vv";

echo $xml;

이것은 반향을 일으킬 것입니다.vvSimpleXML 등에 대해 다중 줄 문자열 리터럴을 수행하는 이유와 방법은 무엇입니까?

음.

$xml = "l
vv";

작동하다.

다음을 사용할 수도 있습니다.

$xml = "l\nvv";

또는

$xml = <<<XML
l
vv
XML;

주석을 기준으로 편집:

다음을 사용하여 문자열을 연결할 수 있습니다..=교환입니다.

$str = "Hello";
$str .= " World";
echo $str; //Will echo out "Hello World";

PHP에는 Heredoc 문자열과 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은 Heredoc와 비슷하지만 변수를 대체하지는 않습니다.

$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공백이나 탭으로 들여쓰기가 가능하며, 이 경우 heredoc/nowdoc 문자열의 모든 줄에서 들여쓰기가 제거됩니다.

성능 측면에서 어떻게 축적되는지는 잘 모르겠지만, 실제로 중요하지 않은 곳에서는 PHP 파일이 저장되는 형식이 아니라 \r\n(CRLF)을 사용하고 있다는 것을 확신할 수 있기 때문에 이 형식이 좋습니다.

$text="line1\r\n" .
      "line2\r\n" .
      "line3\r\n";

또한 원하는 대로 들여놓을 수 있습니다.

$xml="l" . PHP_EOL;
$xml.="vv";
echo $xml;

반향음:

l
vv

PHP_EOL에 대한 설명서.

다른 해결책은 출력 버퍼링을 사용하는 것입니다. 출력/에코되는 모든 정보를 수집하여 변수에 저장할 수 있습니다.

<?php
ob_start(); 

?>line1
line2
line3<?php 

$xml = ob_get_clean();

출력 버퍼링이 성능과 코드 청결 면에서 이 정확한 경우에 가장 좋은 해결책은 아닐 수 있지만 참고로 남겨둘 가치가 있습니다.

PHP에는 여러 줄 문자열을 처리하기 위한 HEREDOC와 NOWDOC 두 가지 내장 메서드가 있습니다.HEREDOC에는 구문 <<<도 있습니다.

다음은 HEREDOC를 사용한 다중 행 PHP 문자열의 예입니다.

<?php
echo <<<EOT
My name is BB. I am printing some Text.
Now, I am printing SECOND LINE.
This should print a capital 'A': \x41
EOT;
?>

참고: 로컬 서버를 사용하여 코드의 올바른 출력을 확인하려면 CMD 또는 XAMPP Shell에서 전체 코드를 실행해야 합니다.

시도해 보세요."=" 대신에?

$xml="l";
$xml.="vv";

"lv"를 제공합니다;

코드에서만 문자열 "l"과 "vv"를 별도의 줄에 놓는 방법:

$xml = "l";
$xml .= "vv"
echo $xml;

이 경우에 당신이 덧붙이려고 하는 것은.=해당 문자열 변수의 이전 버전 끝에 있는 문자열입니다.=는 할당 연산자일 뿐이므로 원래 코드에서는 변수에 새 문자열 값을 할당합니다.

"l" 및 "vv" 문자열을 에코에서만 별도의 줄에 배치하려면:

$xml = "l\nvv"
echo $xml;

인 이 경 새 줄 문 로 여 문 이 열 않 필 니 습 다 지 하 요 자 러 자 우 ▁the ▁character ▁in 다 니 ▁you , ▁as 습 않 ▁strings ▁instance 이 ▁line ▁this ▁multiple ▁new 지 ▁don 필 하t\n당신을 위해 그것을 처리할 것입니다.

코드에서 문자열 "l"과 "vv"를 별도의 줄에 놓고 반향할 때:

$xml = "l";
$xml .= "\nvv"
echo $xml;
$xml="l\rn";
$xml.="vv";

echo $xml;

하지만 당신은 정말로 http://us3.php.net/simplexml 을 들여다봐야 합니다.

언급URL : https://stackoverflow.com/questions/9744192/multi-line-string-literals-in-php

반응형