Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Foreach - działanie pętli
Arson
post 28.03.2005, 04:00:26
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 28.03.2005

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


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
Go to the top of the page
+Quote Post
vala
post 28.03.2005, 08:16:43
Post #2





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 12.01.2005

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


  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


--------------------
Warsztat: Easy PHP 1.7:Apache 1.3.27|PHP 4.3.3|PHPMYADMIn 2.5.3|MYSQL 4.0.15
Go to the top of the page
+Quote Post
Arson
post 28.03.2005, 15:40:55
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 28.03.2005

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


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?
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: 12.06.2025 - 12:50