Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Foreach - działanie pętli
Forum PHP.pl > Forum > Przedszkole
Arson
Witam. Zastanawia mnie działanie pętli foreach. Otóż w założeniu zapis:

  1. <?php
  2.  foreach($tab as $dana) {}
  3. ?>


Przypisuje przy itym wykonaniu pętli wartość każdego itego elementu tablicy $tab
zmiennej $dana. Tą zmienna możemy się posługiwać w pętli. A jednak poniższy kod:

  1. <?php
  2.  
  3. $b['aaa'][0]['var']=1;
  4. $b['aaa'][1]['var']=2;
  5.  
  6. foreach($b['aaa'] as $match) {
  7. echo ''.$match['var'].'<br>';
  8. }
  9.  
  10. ?>


daje w wyniku:
1
2

podczas gdy zwykłe przypisanie tablic:

  1. <?php
  2.  
  3. $match=$b['aaa'];
  4. echo ''.$match['var'].'<br>';
  5.  
  6. ?>


Nie daje żadnego rezultatu, a właściwie resultat postaci: array['var']
Ciekaw jestem jak jest rozwiązana pętla foreach i jakie jeszcze tajniki kryje, bo, że nie da się zakodować funcji która spełniałaby rolę tej pętli - jestem niemal pewien. Początkowo wydawało mi się, iż owa pętla jest zbędna i jest odmianą for z dodatkami, które łatwo można osiągnąć samemu, jednak napisanie w php czegoś co by realizowało powyższe zastosowanie tej pętli wydaje mi się niemożliwe.

Co Wy o tym myślicie i jakie jeszcze znacie ciekawostki związane z działaniem tej pętli - jakieś sztuczki, nieoczywiste działania etc.

Pozdrawiam smile.gif
vala
  1. <?php
  2.  
  3. array(1) { [&#092;"aaa\"]=> array(1) { [0]=> array(1) { [\"var\"]=> int(1) } } } 
  4.  
  5.  
  6. print_r($b);
  7. Array ( [aaa] => Array ( [0] => Array ( [var] => 1 ) ) ) 
  8.  
  9.  
  10.  
  11. ?>


moze to da ci cos do myslenia
Arson
Owszem daje, a jednak owe funkcje (mowa o print_r i var_dump) są dostarczane razem z php, należą do podstawowej biblioteki. Bez nich nie dałoby się skonstruować samodzielnie pętli foreach chyba żeby zejść na język niższego poziomu. BTW. czy php absługuje np. wstawki z assemblera? Czy da się podobnie jak w C++ podejrzeć adresy pamięci danej zmiennej, dostać się do głębszych warstw języka?
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.