Do czego są stałe w PHP?

Do czego są stałe w PHP?
PrezesiQ
  • Rejestracja:prawie 8 lat
  • Ostatnio:prawie 6 lat
  • Postów:187
0

Cześć! Jakiś czas temu natknąłem się na termin stałych w PHP, poczytałem o tym i wiem, jak się je definiuje, i czym są... Ale nie rozumiem do czego służą... Poco jest "pojemnik na dane" którego wartości nie można zmienić, skoro ma się zmienną, a jej wartość da się zmienić... Nie rozumiem tego... Czy mógłby mi to ktoś wytłumaczyć?


"Jesteśmy karłami, którzy wspięli się na ramiona olbrzymów. W ten sposób widzimy więcej i dalej niż oni, ale nie dlatego, ażeby wzrok nasz był bystrzejszy, lub wzrost słuszniejszy, ale dlatego, iż to oni nas dźwigają w górę i podnoszą o całą gigantyczną wysokość" ~ Bernard z Chartes
MA
  • Rejestracja:prawie 17 lat
  • Ostatnio:3 dni
  • Postów:644
3

Uznajmy, że robisz klasę do obliczania powierzchni koła - będziesz musiał wykorzystać PI - ale czy PI jest zmienną? Przecież jej wartość jest stała. Więc definiujesz sobie stałą PI o wartości X i tyle. Wydajnościowo jest to lepsze. A tutaj masz listę dostępnych stałych: http://php.net/manual/pl/reserved.constants.php

HA
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad rok
  • Postów:115
1

Prosty przykład, dlaczego warto używać stałych.
Zastanów się który kod jest czytelniejszy:

ten:

Kopiuj
foreach($arrayOfElements as $element) {
     if($element->type == 5) {
            /// cos tam robi
     } else if($element->type == 23) {
             // zrob costam innego
     }
}

czy ten:

Kopiuj
foreach($arrayOfElements as $element) {
     if($element->type == Element::TYPE_NEW) {
            /// cos tam robi
     } else if($element->type == Element::TYPE_OLD) {
             // zrob costam innego
     }
}
edytowany 2x, ostatnio: Hagefid
DU
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 4 lata
  • Postów:106
1

Powiedzmy, że tworzysz sobie klasę, która przyjmuje jakiś parametr. Załóżmy, że tym parametrem jest jakiś ciąg znaków, definiujący szablon tego, co ma być zwracane.
Czasami bywa, że taki ciąg znaków powtarza się za każdym razem w innych implementacjach.

Ok, przykład z życia:
Korzystasz często z funkcji date( $fromat ).
Oczywiście, możesz wpisać z ręki ciąg znaków, ale możesz też skorzystać z presetów

title

czysteskarpety
czysteskarpety
phpstorm wyczuwam :)
DU
@czysteskarpety - To chyba dobrze : ))))
czysteskarpety
czysteskarpety
yup ;)
TR
  • Rejestracja:ponad 7 lat
  • Ostatnio:2 miesiące
  • Lokalizacja:700m n.p.m.
  • Postów:677
0

Stałe niekoniecznie muszą być stałe, to znaczy - kiedy chcesz mieć możliwość szybkiej zmiany jakiejś wartości w wielu miejscach w kodzie, jak np. domyślna stawka VAT (teraz 23), to możesz do tego użyć stałej (chociaż ja wolałbym zmienną statyczną, albo inne rozwiązanie).

Kiedy stawka VAT się zmieni, zmieniasz ją tylko w stałej (np. w jakimś pliku bootstrap albo w jednej klasie) zamiast w wielu miejscach w kodzie.


DRY > SOLID (nie bierz tego zbyt poważnie)
edytowany 1x, ostatnio: TomRZ

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.