|
Grupa MagazynyInternetowe
![]() ![]() |
|
26.05.2008
Post
#1
|
|
![]() Zajadły dyskutant Grupa: Użytkownik Postów: 292 Dołączył: 12.04.2007 Skąd: Warszawa Nr użytkownika: 3 218 |
Witam,
ponieważ nigdy nie poświęcałem Perlowi więcej uwagi niż to było potrzebne (czego trochę teraz żałuję) nie mogę sobie poradzić z jedną rzeczą w programie jaki teraz piszę. Mianowicie chodzi o sprawdzenie czy dany klucz znajduje się w określonym hashu? Powiedzmy, że mamy następującą sytuację: KOD %xyz = ( 'a' => 'bla, bla, bla', 'b' => 'tra, la, la', 'c' => 'hi, hi, hi' ); W jaki sposób można sprawdzić czy "a" jest kluczem (jest) albo czy "z" jest kluczem (nie jest) w %xyz? Pozdrawiam, MateuszM p.s W PHP służy do tego funkcja: array_key_exists |
|
|
|
26.05.2008
Post
#2
|
|
![]() Zajadły dyskutant Grupa: Użytkownik Postów: 124 Dołączył: 14.01.2008 Skąd: Polska Nr użytkownika: 3 490 |
|
|
|
|
26.05.2008
Post
#3
|
|
![]() Zajadły dyskutant Grupa: Użytkownik Postów: 292 Dołączył: 12.04.2007 Skąd: Warszawa Nr użytkownika: 3 218 |
W php mozna tez uzyc funkcji isset(), jakis perlowski odpowiednik? Nie do końca jest to to samo. Nie chcę rozpisywać się na temat PHP, bo zależy mi na rozwiązaniu Perlowym ale dla ścisłości podaje link do manuala PHP array_key_exists Może jednak ktoś wie jak to sprawdzić w Perlu? Z góry dziękuję. Pozdrawiam, MateuszM |
|
|
|
27.05.2008
Post
#4
|
|
|
Zajadły dyskutant Grupa: Redaktor Postów: 311 Dołączył: 14.06.2005 Nr użytkownika: 19 |
To ja jednak nie an temat, ale... W PHP isset robi w przypadku tabel właściwie to samo co array_key_exist tylko ?nieco? szybciej;-) Poczytaj komentarze w podanym przez Ciebie linku do dokumentacji.
I żeby nie było tak zupełnie nie na temat, pewnie o to Ci chodzi http://perl.active-venture.com/pod/func/exists.html lub tu http://www.devshed.com/c/a/Perl/Array-Mani...tion-in-Perl/6/. -------------------- Magazyn Internet - Internet Maker
staniszczak.pl |
|
|
|
27.05.2008
Post
#5
|
|
![]() Zajadły dyskutant Grupa: Użytkownik Postów: 292 Dołączył: 12.04.2007 Skąd: Warszawa Nr użytkownika: 3 218 |
Bardzo dziękuję za linki na temat Perla. O to właśnie mi chodziło, teraz mogę przepisać swój skrypt w ładniejszy sposób.
Co do PHP to ja również zwracam się z prośbą o doczytanie dokumentacji bo z niej wynika właśnie, że isset i array_key_exists różnią się w swoim działaniu. Proszę szczególnie zwrócić uwagę na przykład nr 2, wkleję komentarz poniżej dla ułatwienia: CYTAT isset() does not return TRUE for array keys that correspond to a NULL value, while array_key_exists() does. Zgadzam się, że to szczegół ale jednak świadczy o tym, że funkcje mają inne działanie. Pozdrawiam, MateuszM |
|
|
|
27.05.2008
Post
#6
|
|
|
Zajadły dyskutant Grupa: Redaktor Postów: 311 Dołączył: 14.06.2005 Nr użytkownika: 19 |
Co do PHP to ja również zwracam się z prośbą o doczytanie dokumentacji bo z niej wynika właśnie, że isset i array_key_exists różnią się w swoim działaniu. Proszę szczególnie zwrócić uwagę na przykład nr 2, wkleję komentarz poniżej dla ułatwienia: Zgadzam się, że to szczegół ale jednak świadczy o tym, że funkcje mają inne działanie. Przyznaje rację, jednak przechowywanie w tabeli NULL-i nie zdarza się często;-) Więc może inaczej – w większości przypadków dają ten sam efekt:-) A często w przypadku gdy jest tam NULL, dla nas oznacza to tyle co brak danych pod tym indeksem a wiec i brak indeksu. Owszem nie zawsze, ale w większości przypadków. -------------------- Magazyn Internet - Internet Maker
staniszczak.pl |
|
|
|
27.05.2008
Post
#7
|
|
![]() Zajadły dyskutant Grupa: Użytkownik Postów: 124 Dołączył: 14.01.2008 Skąd: Polska Nr użytkownika: 3 490 |
Wiem o tym, isset() dziala troche inaczej od array_key_exists(), ale w pewnych przypadkach dzialaja tak samo. Osobiscie przy tablicach stosuje array_key_exists()
|
|
|
|
27.05.2008
Post
#8
|
|
![]() Zajadły dyskutant Grupa: Użytkownik Postów: 292 Dołączył: 12.04.2007 Skąd: Warszawa Nr użytkownika: 3 218 |
Jakby w PHP nie było (drobny szczegół) raz jeszcze dziękuję za pomoc odnośnie Perla. Można chyba zamknąć wątek.
|
|
|
|
![]() ![]() |
|
Wersja Lo-Fi | Aktualny czas: 3.09.2010, 01:14 |