Как определить константу в конструкторе класса? - PullRequest
7 голосов
/ 22 августа 2011

Можно ли определить константу класса внутри функции конструктора класса?

(на основании определенных условий)

Ответы [ 3 ]

10 голосов
/ 22 августа 2011

Это противоречит идее констант класса - они не должны зависеть от конкретного экземпляра. Вместо этого вы должны использовать переменную.

Однако, если вы настаиваете на этом, очень предприимчивы и можете устанавливать расширения PHP, вы можете взглянуть на расширение runkit, которое позволяет изменять классы и их константы во время выполнения. Смотрите этот документ: http://www.php.net/manual/en/function.runkit-constant-add.php

3 голосов
/ 22 августа 2011

Не думаю, что ты можешь.

Это также не имеет смысла - константа класса может использоваться в статическом контексте, где в первую очередь нет конструктора.

Вместо этого вам придется использовать переменную - вот для чего они здесь.

1 голос
/ 22 августа 2011

Попробуйте посмотреть здесь:

http://php.net/manual/en/language.oop5.constants.php

http://php.net/manual/en/language.oop5.static.php

Надеюсь, это поможет.

...