![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Mam tablicę zwracaną przez funkcję:
Kod $sql->fetchArray() Mogę użyć elementu tablicy w taki sposób: Kod $temp = $sql->fetchArray() echo $temp['element']; W jaki sposób dokonać tego samego bez używania zmiennej pomocniczej? W JS wystarczyloby napisać: funkcja()['element']. W php nie działa taki trick. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Wywołanie metody pewnie będzie wolniejsze, ale "pomógł" się należy (IMG:style_emoticons/default/winksmiley.jpg)
Zawsze to jakaś dodatkowa wiedza dla mnie (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 14.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
Jezeli masz tam w $sql->fetchArray() tablice to mozesz uzyc $sql->fetchField('nazwa_pola'), gdzie w metodzie fetchField() najpierw sprawdzasz czy istnieje indeks o nazwie "nazwa_pola".
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 121 Pomógł: 26 Dołączył: 2.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli to Twoje własne rozwiązanie, a nie gotowa klasa, to można i tak
Takie rozwiązanie ma na pewno jeden plus i jeden minus. Jak przekazany parametr do metody jest pusty, to dostaniesz wszystkie dane, jak jest pełny to tylko wybrane. Żadnych ifów po stronie skryptu, tylko w metodzie. Minus jest taki, że nazwa fetchArray jest w tym momencie myląca. Ten post edytował singles 16.08.2009, 13:07:56 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 14.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
Tak bedzie chyba bardziej elastycznie i nie mylaco (IMG:style_emoticons/default/smile.gif) Ten post edytował andycole 16.08.2009, 13:22:10 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 121 Pomógł: 26 Dołączył: 2.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Tak bedzie chyba bardziej elastycznie i nie mylaco (IMG:style_emoticons/default/smile.gif) Tak, ale pisałem o tym wyżej. W twojej wersji w zależności od tego, czy jest ustawiona zmienna $key, $strField czy inna, to musi być if w kodzie skryptu, żeby wybrać odpowiednią metodę. A w moim wypadku if jest zaszyty w kodzie metody i po cichu realizuje przeciążanie funkcji, którego w PHP standardowo nie ma. Minus mojego rozwiązania jest taki, że format zwracanych danych różni się w zależności od przekazanego parametru bądź jego braku. Tylko jak już pisałem, nazwa metody jest myląca - teoretycznie powinno być fetchFieldIfParamPassedInOtherWayFetchArray(), ale nie bądźmy masochistami (IMG:style_emoticons/default/smile.gif) Ten post edytował singles 16.08.2009, 15:22:09 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Widzę, że temat się rozwinął, a mnie wcale nie chodziło o ten konkretny przypadek z funkcją fetchArray (to był tylko przykład).
Taki kod oczywiscie zadziała prawidłowo: Ale taki wygeneruje już błąd: Po sprawdzeniu jednak okazało się, sposób ayeo też nie działa tak jak chciałem: Pewnie to ta metoda fetchArray wprowadziła tyle zamieszania. Powinienem był wpisać przykladowaFunkcja (IMG:style_emoticons/default/smile.gif) Ten post edytował flashdev 16.08.2009, 15:43:11 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 71 Pomógł: 1 Dołączył: 14.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
aaa to na moje oko to co chcesz osiagnac jest niewykonalne w php bo array to typ, a nie obiekt
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Ok, chciałem się tylko dowiedzieć jak w php zrobić coś z czym w js nie ma problemu, po to aby ułatwić sobie życie.
Kod // java script:
alert(new Array("a", "b", "c")[1]); Ten post edytował flashdev 16.08.2009, 17:23:43 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 05:05 |