php heredoc nowdoc PHP

heredoc은 '<<<'와 사용자 정의 ID(예문의 EOD)로 시작되고 사용자 정의 ID로 끝난다.
출력할 경우 그 사이에 있는 쌍따옴표, 따옴표, 문자열은 그대로 출력되고
변수는 값으로 치환되어 출력된다.
클래스의 필드에 초기화값으로는 사용할 수 없다.

heredoc은 php 4 에 추가되었다.

<?php
$str 
= <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;

/* More complex example, with variables. */
class foo
{
    var 
$foo;
    var 
$bar;

    function 
foo()
    {
        
$this->foo 'Foo';
        
$this->bar = array('Bar1''Bar2''Bar3');
    }
}

$foo = new foo();
$name 'MyName';

echo <<<EOT
My name is "$name". I am printing some $foo->foo.
Now, I am printing some 
{$foo->bar[1]}.
This should print a capital 'A': \x41
EOT;
?>

위 예제의 출력결과:

My name is "MyName". I am printing some Foo.
Now, I am printing some Bar2.
This should print a capital 'A': A

nowdoc은 시작하는 사용자 정의 ID를 '(홑따옴표)로 감싸고
ID 사이의 문자열이 무엇이 되었든 문자열 그대로 출력한다.

nowdoc은 5.3.0에 추가되었다.

<?php
$str 
= <<<'EOD'
Example of string
spanning multiple lines
using nowdoc syntax.
EOD;

/* More complex example, with variables. */
class foo
{
    public 
$foo;
    public 
$bar;

    function 
foo()
    {
        
$this->foo 'Foo';
        
$this->bar = array('Bar1''Bar2''Bar3');
    }
}

$foo = new foo();
$name 'MyName';

echo <<<'EOT'
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should not print a capital 'A': \x41
EOT;
?>

위 예제의 출력결과:

My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should not print a capital 'A': \x41

예문 출저 : http://www.php.net/manual/en/language.types.string.php





Justin Yeom의 저작물인 이 저작물은 크리에이티브 커먼즈 저작자표시-동일조건변경허락 3.0 Unported 라이선스에 따라 이용할 수 있습니다.


TAG

Leave Comments


profile대한민국이 선의의 최적화를 이루기 바라며... 

Recent Trackback