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='http://blog.csdn.net/fdipzone'>blog</a></p> </body> </html> FDIPZONE; echo $content; ?>
heredoc 구조는 클래스 속성을 초기화하는 데 사용할 수 없습니다. PHP 5.3부터 이 제한은 heredoc에 변수가 포함된 경우에만 적용됩니다. 다음 예는 잘못될 것입니다.
<?php class test{ public $var = '123'; public $a = <<<FDIPZONE $var FDIPZONE; } $obj = new test(); echo $obj->a; ?>
heredoc 구조에서 변수는 대체되지만 메소드는 대체되지 않습니다. 복잡한 변수를 포함할 때는 주의하세요.
<?php $var = '123'; $content = <<<FDIPZONE $var time(); FDIPZONE; echo $content; // 123 time(); ?>
nowdoc 구조
nowdoc 구문 구조는 heredoc 구조와 매우 유사하지만 nowdoc는 구문 분석 작업을 수행하지 않습니다. 이 구조는 특수 문자를 이스케이프하지 않고 PHP 코드나 기타 큰 텍스트 조각을 삽입하는 데 적합합니다.
nowdoc에는 heredoc 구조 <<<와 동일한 마크업이 있지만 뒤의 식별자는 작은따옴표 로 묶어야 합니다. 즉, <<<'EOF'입니다. . heredoc 구조에 대한 모든 규칙은 nowdoc 구조에도 적용됩니다. 특히 식별자 종료 규칙은 더욱 그렇습니다. nowdoc은 php5.3 이후에 추가되었습니다. <?php
$var = '123';
$content = <<<'FDIPZONE'
$var time();
FDIPZONE;
echo $content; // $var time(); $var没有被替换
?>
<?php
class test{
public $a = <<<'FDIPZONE'
$var
FDIPZONE;
}
$obj = new test();
echo $obj->a;
?>
이 글에서는 php heredoc과 nowdoc의 차이점과 특징을 설명합니다. 더 많은 관련 내용을 보려면 php 중국어 웹사이트를 참고하세요.
관련 추천:
PHP zip 파일의 콘텐츠 비교 클래스에 대한 설명HTML5 localStorage와 sessionStorage의 차이점에 대해사용자 액세스 페이지의 언어 클래스를 가져오거나 설정하는 방법을 통해 php위 내용은 php heredoc과 nowdoc의 차이점과 특징의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!