允许属性分配BEYOND直接文字的PHP版本?

时间:2011-12-11 18:37:50

标签: php parsing class properties version

我是PHP新手,但对编程非常有经验。查看属性上的PHP网站页面:http://www.php.net/manual/en/language.oop5.properties.php我看到了这个例子。

<?php
class SimpleClass
{
   // invalid property declarations:
   public $var1 = 'hello ' . 'world';
   public $var2 = <<<EOD
hello world
EOD;
   public $var3 = 1+2;
   public $var4 = self::myStaticMethod();
   public $var5 = $myVar;

   // valid property declarations:
   public $var6 = myConstant;
   public $var7 = array(true, false);

   // This is allowed only in PHP 5.3.0 and later.
   public $var8 = <<<'EOD'
hello world
EOD;
}
?> 

运行此示例将返回错误:PHP Parse错误:语法错误,意外'。',期待','或';'在第5行的test.php中

事实上,SimpleClass的php.net示例包含所有类型的属性赋值,这些属性赋值不是直接的文字,所有这些都会引起错误; phpinfo()表示版本是PHP Version 5.2.4。

这是与PHP版本相关的问题吗?

1 个答案:

答案 0 :(得分:1)

你引用的例子是:

  

//无效的属性声明:

在不起作用的线上方。似乎很容易理解。

页面下方几行:

  

与heredocs不同,nowdocs可用于任何静态数据上下文,   包括财产声明。

     

示例#2:使用nowdoc初始化属性的示例

<?php
class foo {
   // As of PHP 5.3.0
   public $bar = <<<'EOT'
bar
EOT;
}
?>