连续定义中的连接

时间:2012-01-30 18:10:54

标签: php const concatenation

我正在尝试创建一个小枚举,我只是卡住了:为什么这不起作用?

class.LayoutParts.php:

<?php
    class LayoutParts {
        const MAIN = 1;
        const FOOTER = 2;
    }
?>

class.SupportedLayouts.php:

<?php
    class SupportedLayouts {
        const MAIN        = LayoutParts::MAIN;
        const MAIN_FOOTER = LayoutParts::MAIN.LayoutParts::FOOTER;
    }
?>

结果如下:

Parse error: syntax error, unexpected '.', expecting ',' or ';' in /*****/class.SupportedLayouts.php on line 4

感谢您的帮助!

问候,Flo

1 个答案:

答案 0 :(得分:3)

.是一个运算符,使LayoutParts::MAIN.LayoutParts::FOOTER;成为一个语句,const或属性声明中不允许这样做。

请参阅here

  

值必须是常量表达式,而不是(例如)变量,属性,数学运算的结果或函数调用。