Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]definiowanie stałych czy tablica?
-Q3trms-
post 9.08.2012, 18:55:17
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
Bateria
post 9.08.2012, 19:09:30
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 9.08.2012, 20:09:46
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 10.08.2012, 08:43:30
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?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
redeemer
post 10.08.2012, 09:16:24
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 10.08.2012, 09:19:30
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];


--------------------
Strony WWW: http://arscreo.pl
Go to the top of the page
+Quote Post
greycoffey
post 10.08.2012, 10:33:24
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 10.08.2012, 11:00:29
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 10.08.2012, 13:05:27
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 10.08.2012, 13:16:49
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.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
greycoffey
post 10.08.2012, 14:06:41
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 10.08.2012, 14:53:26
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...


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
greycoffey
post 10.08.2012, 15:26:26
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 11.08.2012, 15:55:21
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.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
wNogachSpisz
post 12.08.2012, 09:26:57
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 13.08.2012, 10:44:29
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.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 23:12