[PHP]Powtórne użycie forech z identycznymi wartościami


(userrpl) #1

Czesć. Mam pytanie czy taki zapis jest poprawny?

echo ';     ($mysql_fetch_assoc as $assoc = $a) {     echo "$assoc";     }     echo '';     ($mysql_fetch_assoc as $assoc = $a) {     echo"$a";     }     echo''; [/code]



Nie mogę tego zapisać w jednej pętli foreach, ponieważ musiałbym zawrzeć pomiędzy $assoc a $a znacznik nowej kolumny, a wtedy by mi się to wszystko rozjechało :-( .

(Grzelix) #2

Można to zrobić na wiele sposobów, szukając najlepszego rozwiązania pomiędzy użyciem pamięci i czasu.

Ten zapis jest poprawny syntaktycznie ale oczywiście można zrobić też na inne sposoby np:

echo ';$values_of_array = "";$mysql_fetch_assoc as $assoc = $a) {"$assoc";$values_of_array .= "$a";

(userrpl) #3

(Grzelix) #4

Co do pierwszej uwagi to jest to po prostu inicjowanie zmiennej jako pusty ciąg znaków - podwójny cudzysłów.

I potem używając konkatenacji mamy pewność że zaczęliśmy wiersz od “zera”, nic niespodziewanego nie powinno tam się pojawić.

$var .= "A"

to operator konkatenacji a dokładnie skrócona forma od

$var = $var."A"

jeśli czegoś nie rozumiesz warto sprawdzić to w dokumentacji języka:

link odnośnie wspomnianego operatora http://php.net/manual/en/language.operators.string.php

php ma nie najgorszą dokumentację (widziałem lepsze), ale mocnym punktem jest pokazanie wielu przykładów w postach po omówieniu danego zagadnienia.


(userrpl) #5

Biorę się za lekturę. Dzięki mistrzu :wink:.