>  기사  >  백엔드 개발  >  php heredoc과 nowdoc의 차이점과 특징

php heredoc과 nowdoc의 차이점과 특징

jacklove
jacklove원래의
2018-06-09 13:55:081539검색

php heredoc 및 nowdoc

heredoc 구조

heredoc 구문 구조: <<<. 연산자 뒤에 식별자를 제공하고 개행 문자를 제공하십시오. 다음에는 이전에 정의된 식별자로 끝나는 문자열 자체가 옵니다.

<?php
$content = <<<FDIPZONE
<html>
<head>
<title>test</title>
</head>
<body>
<p><img src="http://www.csdn.net/css/logo.png"></p>
<p><a href=&#39;http://blog.csdn.net/fdipzone&#39;>blog</a></p>
</body>
</html>
FDIPZONE;
echo $content;
?>

heredoc 구조는 클래스 속성을 초기화하는 데 사용할 수 없습니다. PHP 5.3부터 이 제한은 heredoc에 변수가 포함된 경우에만 적용됩니다. 다음 예는 잘못될 것입니다.

<?php
class test{
public $var = &#39;123&#39;;
public $a = <<<FDIPZONE
$var
FDIPZONE;
}
$obj = new test();
echo $obj->a;
?>

heredoc 구조에서 변수는 대체되지만 메소드는 대체되지 않습니다. 복잡한 변수를 포함할 때는 주의하세요.

<?php
$var = &#39;123&#39;;
$content = <<<FDIPZONE
$var time();
FDIPZONE;
echo $content; // 123 time();
?>

nowdoc 구조

nowdoc 구문 구조는 heredoc 구조와 매우 유사하지만 nowdoc는 구문 분석 작업을 수행하지 않습니다. 이 구조는 특수 문자를 이스케이프하지 않고 PHP 코드나 기타 큰 텍스트 조각을 삽입하는 데 적합합니다.

nowdoc에는 heredoc 구조 <<<와 동일한 마크업이 있지만

뒤의 식별자는 작은따옴표 로 묶어야 합니다. 즉, <<<'EOF'입니다. . heredoc 구조에 대한 모든 규칙은 nowdoc 구조에도 적용됩니다. 특히 식별자 종료 규칙은 더욱 그렇습니다. nowdoc은 php5.3 이후에 추가되었습니다.

<?php
$var = &#39;123&#39;;
$content = <<<&#39;FDIPZONE&#39;
$var time();
FDIPZONE;
echo $content; // $var time(); $var没有被替换
?>

nowdoc 구조는 모든 정적 데이터 환경에서 사용할 수 있습니다. 가장 일반적인 예는 클래스의 속성이나 상수를 초기화하는 것입니다. 다음 예제는 잘못되지 않습니다. heredoc 예제와 비교할 수 있습니다.

<?php
class test{
public $a = <<<&#39;FDIPZONE&#39;
$var
FDIPZONE;
}
$obj = new test();
echo $obj->a;
?>
이 글에서는 php heredoc과 nowdoc의 차이점과 특징을 설명합니다. 더 많은 관련 내용을 보려면 php 중국어 웹사이트를 참고하세요.

관련 추천:

PHP zip 파일의 콘텐츠 비교 클래스에 대한 설명


HTML5 localStorage와 sessionStorage의 차이점에 대해


사용자 액세스 페이지의 언어 클래스를 가져오거나 설정하는 방법을 통해 php

위 내용은 php heredoc과 nowdoc의 차이점과 특징의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.