Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Undefined variable i foreach, Czy mój sposób obsługi tablicy jest dobry?
Bandicoot
post 11.06.2012, 23:50:28
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 31.03.2010

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


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.
Go to the top of the page
+Quote Post
d3ut3r
post 11.06.2012, 23:56:16
Post #2





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


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ę.


--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
Go to the top of the page
+Quote Post
Bandicoot
post 12.06.2012, 00:08:04
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 31.03.2010

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


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

Ten post edytował Bandicoot 12.06.2012, 00:09:35
Go to the top of the page
+Quote Post
darko
post 12.06.2012, 06:47:55
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


  1. public function generateReport(array $resultArray)
  2. {
  3. return implode(' ', $resultArray);
  4. }


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
Bandicoot
post 12.06.2012, 09:23:18
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 31.03.2010

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


Kolega d3ut3r już napisał o tej funkcji. Dzięki za pomoc, temat został wyczerpany.
Pozdrawiam

Ten post edytował Bandicoot 12.06.2012, 09:23:40
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 22:45