Silverstripe 3.4定义和公共静态

时间:2016-09-29 05:12:01

标签: php static silverstripe public

在Silverstripe 3.4中我收到错误

'Parse error: syntax error, unexpected '.', expecting ',' or ';' in /Applications/MAMP/htdocs/Silverstripe/myModule/code/Page.php on line 10'

_config.php:

define('THIS_MODULE_DIR',  basename(dirname(__FILE__)));

page.php文件:

public static $icon = THIS_MODULE_DIR.'/img/contact-file.gif';  // line 10

请解释为什么会出现这种错误/我做错了什么。

1 个答案:

答案 0 :(得分:1)

5.6之前的PHP不允许使用默认值的表达式。你可以用

public static $icon = 'my-folder/img/contact-file.gif';

但这要求文件夹具有特定名称。

您也可以在同一个文件中设置值,但在减速后

<?php

class Foo {
  public static $icon;
}

Foo::$icon = THIS_MODULE_DIR.'/img/contact-file.gif';

最好的选择是升级到至少PHP 5.6,特别是不再支持早期版本。