Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Undefined variable i foreach
Forum PHP.pl > Forum > Przedszkole
Bandicoot
Witam.
Posiadam funkcję, która ma na celu branie pierwszego elementu tablicy i zapisanie go w zmiennej $results, kolejno dopisuje drugi element itd. tworząc jeden string.

Funkcja:
  1. public function generateReport($resultArray)
  2. {
  3. foreach($resultArray as $val)
  4. {
  5. $results .= $val.' ';
  6. }
  7. return $results;
  8. }


Main:
  1. $tablica[0] = 'jeden';
  2. $tablica[1] = 'dwa';
  3. $tablica[2] = 'trzy';
  4. $raport = new MySQLDriver();
  5. $sql = $raport->generateReport($tablica);
  6. $raport->connect();
  7. $raport->execute($sql); //execute to zwyczajne echo $sql


Wszystko jest w porządku, wyświetla mi to co chcę, ale dodatkowo generuje Notice: Undefined variable: results. Wiem że można to wyłączyć w ustawieniach serwera, mogę również zdefiniować zmienną $results przed pętlą jako $results = ''; i to też załatwia problem, ale moje pytanie brzmi, czy może robię to w nieodpowiedni sposób?
Pozdrawiam.
d3ut3r
Według tego co wiem to sposób jaki podałeś jest odpowiedni. Chociaż w php mamy implode, która pewnie uprości twoją funkcję.
Bandicoot
A bardzo dziękuję za odpowiedź i podpowiedź z implode(), motywuje mnie to do przerobienia całego manuala, nie ograniczając się tylko do tego co serwują mi książki. Ogólnie to był przykład na obsługę tablicy przez foreach w przypadku korzystania z operatora " .= ",a chciałbym wiedzieć że robie to dobrze. Przecież po drugiej stronie może być równanie etc. i implode wtedy nie przejdzie. Dzięki jeszcze raz Lkingsmiley.png
darko
  1. public function generateReport(array $resultArray)
  2. {
  3. return implode(' ', $resultArray);
  4. }
Bandicoot
Kolega d3ut3r już napisał o tej funkcji. Dzięki za pomoc, temat został wyczerpany.
Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.