PHP에서 redoc을 사용하는 장점은 무엇입니까?
PHP에서 geredoc을 사용하는 장점은 무엇이며, 예를 들어주시겠습니까?
세습 구문은 나에게 훨씬 더 명확하고 여러 줄의 문자열에 매우 유용하며 인용 문제를 피할 수 있습니다.옛날에는 SQL 쿼리를 작성하기 위해 이러한 쿼리를 사용했습니다.
$sql = <<<SQL
select *
from $tablename
where id in [$order_ids_list]
and product_name = "widgets"
SQL;
따옴표를 사용하는 것보다 구문 오류가 발생할 확률이 낮습니다.
$sql = "
select *
from $tablename
where id in [$order_ids_list]
and product_name = \"widgets\"
";
또 하나의 포인트는 스트링의 큰따옴표가 이스케이프되지 않도록 합니다.
$x = "The point of the \"argument" was to illustrate the use of here documents";
위의 문제는 여기서 설명하는 문서 구문이 아니라 방금 소개한 구문 오류(excape quote 누락)입니다.
$x = <<<EOF
The point of the "argument" was to illustrate the use of here documents
EOF;
조금 스타일리시하지만, 문자열을 정의하기 위한 단일 문서, 이중 문서 및 여기 문서의 규칙으로 다음을 사용합니다.
- 작은 따옴표는 문자열이 다음과 같은 상수일 때 사용됩니다.
'no variables here' - 문자열을 한 줄에 넣을 수 있고 변수 보간 또는 포함된 단일 따옴표가 필요한 경우 큰따옴표
"Today is ${user}'s birthday" - 형식 지정 및 변수 보간이 필요한 여러 줄 문자열에 대한 문서입니다.
가독성과 유지보수가 용이하기 때문에 인용된 문자열에 대한 훌륭한 대안이 됩니다.따옴표를 피할 필요가 없으며 (좋은) IDE 또는 텍스트 편집기는 올바른 구문 강조 표시를 사용합니다.
매우 일반적인 예: PHP 내에서 HTML을 에코아웃합니다.
$html = <<<HTML
<div class='something'>
<ul class='mylist'>
<li>$something</li>
<li>$whatever</li>
<li>$testing123</li>
</ul>
</div>
HTML;
// Sometime later
echo $html;
읽기 쉽고 유지보수가 용이합니다.
대신 따옴표로 둘러싸인 문자열을 에코하는 것입니다.따옴표는 이스케이프되고 IDE는 해당 언어의 구문을 강조 표시하지 않기 때문에 가독성이 떨어지고 유지보수가 더 어려워집니다.
물론 SQL 쿼리가 HTML로 강조 표시되어 있는 것은 원하지 않습니다. 다른 언어를 사용하려면 구문에서 언어를 변경하십시오.
$sql = <<<SQL
SELECT * FROM table
SQL;
일부 IDE는 코드를 자동으로 세레독 문자열로 강조 표시하므로 XML 또는 HTML에 세레독을 사용하는 것이 시각적으로 매력적입니다.
인용문자에 신경 쓰지 않고 XML을 붙여넣기만 하면 되기 때문에 XML의 긴 부분을 개인적으로 좋아합니다.
우선, 모든 이유는 주관적이다.그것은 이유라기보다는 취향의 문제이다.
개인적으로, 저는 세습이 매우 쓸모없고 가끔 그것을 사용합니다.대부분의 경우 HTML을 변수에 넣고 출력 버퍼링에 신경쓰고 싶지 않을 때, 예를 들어 HTML 이메일 메시지를 형성하기 위해 사용합니다.
포맷은 일반적인 들여쓰기 규칙에 맞지 않지만, 큰 문제는 아니라고 생각합니다.
//some code at it's proper level
$this->body = <<<HERE
heredoc text sticks to the left border
but it seems OK to me.
HERE;
$this->title = "Feedback";
//and so on
인정된 답변의 예에 대해서는 부정행위일 뿐입니다.
스트링 예시는 을 피우지 더 , 더 간결하게 표현하다.
$sql = "SELECT * FROM $tablename
WHERE id in [$order_ids_list]
AND product_name = 'widgets'";
$x = 'The point of the "argument" was to illustrate the use of here documents';
유전은 게으름이라고 말할 수 있을지 모르겠다.어떤 일이든 하는 것은 게으름이라고 말할 수 있다. 왜냐하면 어떤 일이든 하는 데는 항상 더 번거로운 방법이 있기 때문이다.
예를 들어 특정 상황에서는 파일에서 가져와 템플릿 치환을 실행할 필요 없이 내장된 변수를 사용하여 텍스트를 출력할 수 있습니다.Deredoc을 사용하면 따옴표를 피할 필요가 없기 때문에 표시되는 텍스트는 출력되는 텍스트입니다.물론 부정적인 면도 있습니다. 예를 들어, 자신의 유전적인 부분을 삽입할 수 없습니다. 그리고 그것은 특정한 상황에서 좌절감을 줄 수 있습니다. 특히 당신이 통일된 통사론을 고집한다면, 저는 그렇습니다.
언급URL : https://stackoverflow.com/questions/5673269/what-is-the-advantage-of-using-heredoc-in-php
'programing' 카테고리의 다른 글
| 모든 열을 비교하는 MariaDB/MySQL을 제외한 다른 방법 (0) | 2023.01.15 |
|---|---|
| PHP에서 PDF를 편집하시겠습니까? (0) | 2023.01.15 |
| MySQL에서 쿼리 캐시를 해제해야 합니까? (0) | 2023.01.14 |
| vue-test-sys: 속성 $route를 덮어쓸 수 없습니다. 이 문제는 일반적으로 속성을 읽기 전용 값으로 추가한 플러그인으로 인해 발생합니다. (0) | 2023.01.14 |
| 동일한 열에 대해 두 개 이상의 조건이 있는 카운트 (0) | 2023.01.14 |