2011-08-22 17 views

Odpowiedz

8

Jest to sprzeczne z ideą stałych klasowych - nie powinny one być zależne od konkretnego przypadku. Zamiast tego powinieneś użyć zmiennej.

Jednakże, jeśli nalegasz na zrobienie tego, jesteś bardzo ryzykowny i możesz zainstalować rozszerzenia PHP, możesz rzucić okiem na rozszerzenie runkit, które pozwala modyfikować klasy i ich stałe w czasie wykonywania. Zobacz ten dokument: http://www.php.net/manual/en/function.runkit-constant-add.php

+0

Szukałem odpowiednika "statycznego finału" języka Java, który można ustawić w konstruktorze, ale niestety w stałych php są nieco inne. –

+0

Jest to również sprzeczne z ideą stałych w ogóle, ale w PHP można dynamicznie definiować() stałą. –

+0

Może to być przydatne, gdy chcesz zdefiniować stałe łańcuchowe, których wartości składają się z wartości innych stałych (w celu DRYANIA części wspólnych). Ponieważ PHP nie zezwala na wyrażenia (takie jak konkatenacja dwóch łańcuchów) w stałych wartościach, byłoby to przydatne w konstruktorze. –

3

Nie sądzę, że można.

To też nie ma sensu - stała klasy może być używana w kontekście statycznym, gdzie nie ma żadnego konstruktora.

Zamiast tego musisz użyć zmiennej - po to są.

Powiązane problemy