![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 18.07.2015 Ostrzeżenie: (0%) ![]() ![]() |
Pytam z ciekawości... może ktoś wie... otóż ciagle natykam się na konieczność sprawdznia issetem i zastanawiam się na czymś takim:
isset zwraca tylko bool, a czemu nie mogę znaleźć info na temat wbudowanego elementu języka, który by od razu zwrócił wartość lub null jeśli wartości nie ma? Zapewne klucze są trzymane w innym miejscu co wartości i dlatego isset tylko zwraca tylko bool.... ale mimo wszystko wbudowana funkcja mogłaby zwrócić wartość szybciej... a co gorsza, wszędzie znajduję przykłady, że ludzie sami piszą własne funkcje wykonujące isset i zwracające wartość lub null... tymczasem jest to kolejne dokładanie nadmiarowego kodu do wykonania. Jaki to ma sens? Jak to możliwe, że w php nie ma czegoś takiego? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 381 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 18.07.2015 Ostrzeżenie: (0%) ![]() ![]() |
No fajnie... czyli będzie w php 7... szkoda, że dopiero 7
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 2.04.2015 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy też o to Ci chodzi, ale możesz użyć funkcji
. Albo funkcji w sposób lub jeśli chodzi Ci o wartość to funkcja in_array sprawdza czy w tablicy znajduje się dana wartość. Ten post edytował frydry 20.08.2015, 10:17:48 |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat No fajnie... czyli będzie w php 7... szkoda, że dopiero 7 Nikt ci nie broni napisac funkcji, do ktorej zapodasz tablice i klucz a ona zwroci co to co chcesz.A zamiast dlugiego if co teraz masz mozesz robic: $val = isset($tab['key']) ? $tab['key'] : null; |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Lub jeśli jesteś sadystą, masochistą, szowinistą, gimbazą... (tutaj dalej lista niecezuralnych słów)...
to możesz dać: Kod $val = $tab['key'] ?: null; Ale to chyba tylko od php 5.4 >= |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@Pyton no ale nie rzuci to przypadkiem noticem gdy nie bedzie klucza?
edit: odpowiadam sam sobie: oczywiscie ze rzuci noticem... wiec chyba to mial na mysli pyton uzywajac tych wszystkich obrazliwych slow (IMG:style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 82 Pomógł: 22 Dołączył: 20.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
odpowiadajac na pytanie - wbudowanym mechanizmem jezyka jest $a[0] - zwroci element o indeksie 0 albo null (i notice)
mozna zrobic @$a[0] - wtedy bedzie doklanie to o co chodzi, bez notice - super to nie jest, ale jest to mechanizm jezyka, na.wet bez dodatkowej funkcji jesli ktos jej nie chce. isset jak sama nazwa wskazuje zwraca informacje, czy cos jest ustawione, zwracanie elementu byloby nielogiczne. a php7 bedzie juz niedlugo. isset($a[0]) ? $a[0] : null; juz bylo napisane wczesniej (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 06:47 |