Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]definiowanie stałych czy tablica?
-Q3trms-
post
Post #1





Goście







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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
Bateria
post
Post #2





Grupa: Zarejestrowani
Postów: 129
Pomógł: 13
Dołączył: 23.11.2011

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
-Q3trms-
post
Post #3





Goście







Czy to nie jest tak, że wraz z kolejnymi specyfikacjami PHP funkcja define(), zostanie całkowicie zastąpiona tablicami?.
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Niby z jakiej okazji?
Go to the top of the page
+Quote Post
redeemer
post
Post #5





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
qrooel
post
Post #6





Grupa: Zarejestrowani
Postów: 306
Pomógł: 42
Dołączył: 25.03.2010
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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];
Go to the top of the page
+Quote Post
greycoffey
post
Post #7





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


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.
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #8





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


Wg mnie decydować powinna wydajność.

Przy stałych istnieje też ryzyko kolizji (przysłownięcia czy jak to tam się zwie.)

Ten post edytował wNogachSpisz 10.08.2012, 11:02:30
Go to the top of the page
+Quote Post
greycoffey
post
Post #9





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


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?
Go to the top of the page
+Quote Post
erix
post
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Nazywasz stałą tyłek, jakaś biblioteka używa tej samej nazwy i masz problem.
Go to the top of the page
+Quote Post
greycoffey
post
Post #11





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Dlatego można definiować stałe w klasach oraz przestrzeniach nazw.
Go to the top of the page
+Quote Post
erix
post
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




To był tylko przykład...
Go to the top of the page
+Quote Post
greycoffey
post
Post #13





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Rozumiem, tylko kolizja wynika z samej idei stałej - posiada stałą wartość.
Go to the top of the page
+Quote Post
erix
post
Post #14





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Kolizja wynika z braku separacji przestrzeni nazw.
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #15





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


W moim ulubionym CodeIgniterze, na cały framework zadeklarowana została raptem garstka stałych:

http://codeigniter.com/user_guide/general/...rved_names.html
Go to the top of the page
+Quote Post
erix
post
Post #16





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ale nie przewidzisz, czy nie skorzystasz kiedyś z biblioteki, która - być może - będzie korzystać z tych samych stałych, co Twoje.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 11:46