![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 8.03.2010 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam coś takiego:
Potrzebuję to do zrobienia liderów z danych kategorii. To co napisałem działa bardzo dobrze, ale coś czuję że jest bardzo mało logicznie/profesjonalnie/dobrze... ![]() Jestem perfekcjonistą, i skoro już coś robię, to chcę to zrobić dobrze. A więc jak zrobić to logicznie/profesjonalnie/dobrze? BTW. $show = $_POST['show'] Ten post edytował pawel.ad 26.03.2010, 20:11:10 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Proponuję zamianę na switch
Jest to czytelniejsze i prostsze w rozbudowie o nowe warunki. -------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 580 Pomógł: 85 Dołączył: 25.03.2010 Skąd: Skrzyszów :) Ostrzeżenie: (0%) ![]() ![]() |
To jest kolejna ciekawa wersja do użycia Ten post edytował zend 26.03.2010, 20:42:45 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 8.03.2010 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Wiedziałem że da się lepiej! ;-)
Dzięki za pomoc. OK, to teraz lepiej array, czy switch? ![]() I znowu, chodzi mi o to co jest bardziej profesjonalne itp., itd. Ten post edytował pawel.ad 26.03.2010, 20:50:19 |
|
|
![]()
Post
#6
|
|
![]() Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
Cytat I znowu, chodzi mi o to co jest bardziej profesjonalne itp., itd. Każde rozwiązanie, które: - działa zgodnie z oczekiwaniem, nie powodując błędów i notice'ów - jest czytelne - jest bezproblemowe do modyfikacji przez kogoś, kto zobaczy to pierwszy raz na oczy - odpowiednio sformatowane (wcięcia, nawiasy itp.) - z komentarzami wyjaśniającymi, co "autor miał na mysli", gdy rozwiązanie jest niestandardowe, ale z zachowaniem pierwszego punktu -------------------- Life's simple... You make choices and don't look back...
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 0 Dołączył: 8.03.2010 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje bardzo.
Robię ze switch. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Dziękuje bardzo. Robię ze switch. W takim przypadku moim zdaniem array jest lepszy, większa czytelność kodu - bo będzie go mniej. Jednak zamiast tego isset użyłbym array_key_exists Ten post edytował fifi209 26.03.2010, 21:16:59 -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 580 Pomógł: 85 Dołączył: 25.03.2010 Skąd: Skrzyszów :) Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli mnie pamięc nie myli to array_key_exists jest wolniejsze od isset, dlatego warunek z isset
![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli mnie pamięc nie myli to array_key_exists jest wolniejsze od isset, dlatego warunek z isset ![]() A mógłbyś to poprzeć jakimiś testami? ![]() -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 580 Pomógł: 85 Dołączył: 25.03.2010 Skąd: Skrzyszów :) Ostrzeżenie: (0%) ![]() ![]() |
"array_key_exists(), at least in 5.2.4, passes the array by value. I conclude this from seeing performance worsen as the array to search got bigger. isset() doesn't have this problem."
performance Wierzę im na słowo honoru ![]() PS. a jeśli ktoś nie jest taki ufny jak ja może bez problemu przeprowadzić testy ![]() ![]() Ten post edytował zend 26.03.2010, 22:04:51 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 130 Pomógł: 11 Dołączył: 7.04.2003 Ostrzeżenie: (10%) ![]() ![]() |
Rozwiązanie na tablicach jest moim zdaniem bardziej czytelne. A co do szybkości, isset jest szybsze choćby ze względu na fakt że jest wyrażeniem, nie jest funkcją.
Nie sądzę aby w tym wypadku szybkość miała znaczenie. Mówimy tutaj operacji w fazie wyświetlania wyników i mikrosekundy na tym etapie są mało istotne. Szybkość ma większe znaczenie w fazie wyciągania danych z bazy. -------------------- .:SMENTEK:.
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 1.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
To ja tylko może wspomnę że switch jest szybszy niż if/elseif/
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Rozwiązanie na tablicach jest moim zdaniem bardziej czytelne. A co do szybkości, isset jest szybsze choćby ze względu na fakt że jest wyrażeniem, nie jest funkcją. Nie sądzę aby w tym wypadku szybkość miała znaczenie. Mówimy tutaj operacji w fazie wyświetlania wyników i mikrosekundy na tym etapie są mało istotne. Szybkość ma większe znaczenie w fazie wyciągania danych z bazy. isset nie jest funkcją? a czym? -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Cytat Note: Because this is a language construct and not a function, it cannot be called using variable functions Czyli, że isset jest konstrukcją (inaczej elementem składni) języka php (jak echo). Poza tym array_key_exists() na pewno działa wolniej przy bardzo dużych tablicach, ponieważ mimo wszystko sprawdza klucze, dopóki nie natrafi na ten właściwy, albo dopóki tablica się nie skończy. Tymczasem w isset podajemy konkretny klucz z tablicy.EDIT: Źródło: PHP Manual Ten post edytował mortus 27.03.2010, 10:45:05 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 1.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 580 Pomógł: 85 Dołączył: 25.03.2010 Skąd: Skrzyszów :) Ostrzeżenie: (0%) ![]() ![]() |
Ooo
![]() ![]() foreach - array_key_exists for - isset Takie szczegóły mają znaczenie dobiero wtedy kiedy przeszukiwana tablica ma powyżej tysiąca elementów, ale itak nie zaszkodzi wiedzieć |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Przy okazji nadmienię pewną różnicę pomiędzy isset a array_key_exists. Cenne spostrzeżenie. ![]() -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 1.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cenne spostrzeżenie. ![]() Obecnie przygotowuje się do egzaminu ZCE, tak więc jestem na bieżąco z takimi ciekawostkami PHP ![]() Odnośnie funkcji isset to ma ona pewną przewagę nad array_key_exists. Można jej użyć w ten sposób:
Funkcja unset również może przyjąć wiele argumentów. Ten post edytował AdamAdax 27.03.2010, 11:25:26 |
|
|
![]()
Post
#20
|
|
![]() Grupa: Zarejestrowani Postów: 130 Pomógł: 11 Dołączył: 7.04.2003 Ostrzeżenie: (10%) ![]() ![]() |
isset nie jest funkcją? a czym? Jest wyrażeniem (ang. statement). -------------------- .:SMENTEK:.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 12:21 |