Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]definiowanie stałych czy tablica?
Forum PHP.pl > Forum > Przedszkole
Q3trms
Witam. Mam pytanie dotyczące stosowania definici stałych a tablic w php. Mam prosty skrypt który liczy wartość zamówionych przedmiotów, ceny tych przedmiotów mogę zdefiniować za pomocą stałych lub tablicy. Teraz pytanie która forma jest bardziej nazwijmy to poprawna?, czy to może kwestia wygody programowania?.


Skrypt przechowywujący dane wartości przedmiotów:

  1. define ('CENAOPON', 250);
  2. define ('CENAOLEJU', 50);
  3. define ('CENASWIEC', 6);
  4.  
  5. &
  6.  
  7. $cena= array( 'opony' => 250,
  8. 'olej' => 50,
  9. 'swiec' => 6);



Praktyczniej używać definicji stałych, czy stwożyć tablicę do przechowywania wartości?
Bateria
Na pewno w dużej mierze jest to kwestia indywidualnego podejścia programisty, ale ja bym wybrał tablicę. Praca na nich będzie o wiele łatwiejsza.
Q3trms
Czy to nie jest tak, że wraz z kolejnymi specyfikacjami PHP funkcja define(), zostanie całkowicie zastąpiona tablicami?.
erix
Niby z jakiej okazji?
redeemer
Stałe jak sama nazwa, powinno się stosować do stałych wartości, jak liczba pi. Ja do przykładu, który podałeś użyłbym tablicy bo idealnie tutaj pasuje i jest bardziej elastyczna, jeśli chodzi o późniejsze rozszerzanie kodu.
qrooel
Cytat(Q3trms @ 9.08.2012, 19:55:17 ) *
Witam. Mam pytanie dotyczące stosowania definici stałych a tablic w php. Mam prosty skrypt który liczy wartość zamówionych przedmiotów, ceny tych przedmiotów mogę zdefiniować za pomocą stałych lub tablicy. Teraz pytanie która forma jest bardziej nazwijmy to poprawna?, czy to może kwestia wygody programowania?.


Skrypt przechowywujący dane wartości przedmiotów:

  1. define ('CENAOPON', 250);
  2. define ('CENAOLEJU', 50);
  3. define ('CENASWIEC', 6);
  4.  
  5. &
  6.  
  7. $cena= array( 'opony' => 250,
  8. 'olej' => 50,
  9. 'swiec' => 6);



Praktyczniej używać definicji stałych, czy stwożyć tablicę do przechowywania wartości?



Szczególnie, że wreszcie po 600 latach w PHP 5.4 pojawiła się skrócona składnia tablic:

  1. $cena = [ 'opony' => 250, 'olej' => 50, 'swiec' => 6];
greycoffey
Cytat(qrooel @ 10.08.2012, 10:19:30 ) *
Szczególnie, że wreszcie po 600 latach w PHP 5.4 pojawiła się skrócona składnia tablic:

  1. $cena = [ 'opony' => 250, 'olej' => 50, 'swiec' => 6];

5 znaków mniej to znacząca różnica. Możnaby się pokusić o stworzenie własnej implementacji ImmutableList, aby to rzeczywiście były stałe, ale z dostępem jak do tablicy.
wNogachSpisz
Wg mnie decydować powinna wydajność.

Przy stałych istnieje też ryzyko kolizji (przysłownięcia czy jak to tam się zwie.)
greycoffey
Cytat(wNogachSpisz @ 10.08.2012, 12:00:29 ) *
Przy stałych istnieje też ryzyko kolizji (przysłownięcia czy jak to tam się zwie.)

Powiesz coś więcej?
erix
Nazywasz stałą tyłek, jakaś biblioteka używa tej samej nazwy i masz problem.
greycoffey
Dlatego można definiować stałe w klasach oraz przestrzeniach nazw.
erix
To był tylko przykład...
greycoffey
Rozumiem, tylko kolizja wynika z samej idei stałej - posiada stałą wartość.
erix
Kolizja wynika z braku separacji przestrzeni nazw.
wNogachSpisz
W moim ulubionym CodeIgniterze, na cały framework zadeklarowana została raptem garstka stałych:

http://codeigniter.com/user_guide/general/...rved_names.html
erix
Ale nie przewidzisz, czy nie skorzystasz kiedyś z biblioteki, która - być może - będzie korzystać z tych samych stałych, co Twoje.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.