Конкатенация в постоянном определении - PullRequest
1 голос
/ 30 января 2012

Я пытаюсь создать небольшое перечисление, и я просто застрял: почему это не работает?

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

Спасибо за помощь!

С уважением, Фло

1 Ответ

3 голосов
/ 30 января 2012

. - это оператор, который делает LayoutParts::MAIN.LayoutParts::FOOTER; оператором, что недопустимо в const или объявлении свойства.

См. здесь

Значение должно быть константным выражением, а не (например) переменной, свойством, результатом математической операции или вызова функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...