나는 PHP 7.1.11PHP가 heredoc 구문을 사용하여 클래스 속성을 초기화하지 못하게하는 이유는 무엇입니까? PHP 매뉴얼에서 언급 한 바와 같이
을 사용하고 있습니다 :
Heredocs can not be used for initializing class properties. Since PHP 5.3, this limitation is valid only for heredocs containing variables.
는 위의 문장은 클래스 속성 히어 닥 구문을 사용하여 초기화 할 수 없습니다 말하는 PHP 5.3 이후 .
PHP 7.1.11을 사용하고 heredoc 구문을 사용하여 클래스 속성을 초기화하고 있지만 오류가 발생하지 않았으며 클래스 속성이 초기화되었습니다.
왜 그렇습니까?
은 내 아래의 작업 코드를 살펴 보자 :
<!DOCTYPE HTML>
<html>
<head>
<title>Example</title>
</head>
<body>
<?php
class foo {
public $bar = <<<EOT
barti
EOT;
}
$j = new foo();
echo $j->bar;
?>
</body>
</html>
위의 코드의 출력은 이미 소스로
barti
'PHP 5.3 이후로,이 제한은 변수가있는 heredoc에만 유효합니다. '귀하의 예제에는 변수가 포함되어 있지 않으므로 언급 된 제한에 포함되지 않습니다. –
@ManuelMannhardt : 적절한 작업 코드 예제로 이것을 증명해 주시겠습니까? 실제로 "변수를 포함한 heredocs"는 무엇을 의미합니까? 그런 종류의 예를 들어주세요. – user2839497
@ user2839497 당신이 찾고있는 예제가 실제로이 경우에는 _non-working_ 코드 일 것입니다. –