【问题标题】:Silverstripe 3.4 define and public staticSilverstripe 3.4 定义和公共静态
【发布时间】:2017-02-07 06:46:36
【问题描述】:

在 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__)));

页面.php:

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

请解释为什么会发生此错误/我做错了什么。

【问题讨论】:

    标签: php static silverstripe public


    【解决方案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,尤其是不再支持早期版本。

    【讨论】:

    • 嗨!使用 PHP 5.6 时同样的错误。和 7.0;第二个建议没有成功。我必须使用 my-folder/... -path。
    猜你喜欢
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 2014-07-12
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多