Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> element tablicy zwróconej w funkcji
flashdev
post
Post #1





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
singles
post
Post #2





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
  1. public function fetchArray($key = null)
  2. {
  3. $this->dane = array(); //tutaj je sobie wstawiasz czy tam pobierasz
  4. if (!is_null($key)) {
  5. return $this->dane[$key];
  6. }
  7.  
  8. return $this->dane;
  9. }


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
Go to the top of the page
+Quote Post
andycole
post
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 14.12.2004

Ostrzeżenie: (0%)
-----


  1. public function fetchArray(){
  2. $this->dane = array();
  3. return $this->dane;
  4. }
  5.  
  6. public function fetchField($strField){
  7. $arrTab = $this->fetchArray();
  8. if(!empty($strField))
  9. if($arrTab){
  10. if(array_key_exists($strField, $arrTab))
  11. return $arrTab[$strField];
  12. }
  13. return false;
  14. }


Tak bedzie chyba bardziej elastycznie i nie mylaco (IMG:style_emoticons/default/smile.gif)

Ten post edytował andycole 16.08.2009, 13:22:10
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 28.12.2025 - 12:42