Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nieintuicyjne zachowanie foreach, błąd php czy złe oczekiwania
mike
post
Post #1





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Witam,

Chciałbym się podzielić pewnym spostrzeżeniem. Kawałek kodu na początek:
  1. <?php
  2.  
  3. $strColumn = 'surname';
  4.  
  5. $arrColumns = array( 'surname', 'name', 'email' );
  6.  
  7. foreach( $arrColumns as $intId => $strColumn )
  8. {
  9. echo $intId . ' => ' . $strColumn . '<br />';
  10. }
  11.  
  12. echo '<br />' . $strColumn; // wyświetli `email` a powinno wyświetlić `surname`
  13.  
  14. ?>

Powiedzcie mi czy ja za wiele wymagam, żeby lokalna zmienna $strColumn była faktycznie lokalna?
Dlaczego się czepia wcześniej ustawionej zmiennej?

Czy to jets bug php czy jest to błąd w mojej interpretacji i moich oczekiwaniach?

Już klika lat piszęw php i dopiero teraz to zauważyłem, ...., a może wcześniej nie miałem nigdy takiej sytuacji, ..., ale to raczej wykluczone.

Wersja php na jakiej pracuję to 5.1.2.

(tylko bez głupich komentaży o Przedszkolu (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) )
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(nospor @ 2006-03-21 15:01:34)
(...) zmienne tablicowe tak. ale od kiedy index tablicy to tablica? pozatym foreach inicjuje to sam w sobie.

Tu chodziło mi o wartości, które tablicami już mogą być :-)

A właśnie o to "sam w sobie" mi chodzi. Skoro on robi do własnych celów to powinno być to o zasięgu lokalnym.
Go to the top of the page
+Quote Post

Posty w temacie
- mike_mech   Nieintuicyjne zachowanie foreach   21.03.2006, 13:31:51
- - pEbE   No nic dziwnego jak zmieniasz wartosc zmiennej...   21.03.2006, 13:41:21
- - nospor   zmienne lokalne dotyczą funkcji, a nie kawalkow ko...   21.03.2006, 13:45:19
- - mike_mech   No kurcze, aż dziw bierze że dopiero teraz mi si...   21.03.2006, 13:46:58
- - dr_bonzo   Stane w obronie mike_mecha: patrzcie na to (C++ ni...   21.03.2006, 14:34:33
- - mike_mech   Dokładnie coś takiego miałem na myśli skoro w kons...   21.03.2006, 14:51:48
- - nospor   CytatJa to uważam za niekonsekwencję, bo skoro jes...   21.03.2006, 14:55:03
- - mike_mech   Cytat(nospor @ 2006-03-21 14:55:03)CytatJa to...   21.03.2006, 14:59:43
- - nospor   CytatA po za tym. Zmienne tablicowe trzeba deklaro...   21.03.2006, 15:01:34
- - scanner   Jesli dobrze pamiętam ze szkoły (dawno nie praktyk...   21.03.2006, 15:01:58
- - MaKARON   Sto lat temu to robilem, ale przegladalem zrodla k...   21.03.2006, 15:21:32
- - mike_mech   Cytat(nospor @ 2006-03-21 15:01:34)(...) zmie...   21.03.2006, 16:24:01
- - kszychu   MIke, zupełnie nie rozumiem, dlaczego takie zachow...   21.03.2006, 17:00:45
- - anopak   z jednej strony mike ma rację, bo np jeżeli includ...   22.03.2006, 00:21:03
- - nospor   Cytatbo np jeżeli includujemy jakiś kod z pętlą fo...   22.03.2006, 08:23:58
- - bigZbig   mike_mecha zaskoczylo takie zachowanie poniewarz p...   22.03.2006, 10:09:20
- - anopak   Cytat(nospor)Ale co to za argumentacja? Rownie dob...   22.03.2006, 12:26:02
- - bigZbig   @anopak - sam sobie odpowiedziales   22.03.2006, 12:51:51
- - anopak   @bigZbig - no niby tak, ale to mogły być poprostu ...   22.03.2006, 13:04:22
- - bigZbig   @anopak - no OK, ale potrzebne Ci to? Moim zdaniem...   22.03.2006, 15:02:15
- - Immanuel   CytatAle czemu? php nie wymaga inicjacji (zadeklar...   23.03.2006, 14:34:03
- - nospor   no bo ja mówilem własnie o inicjacji ok, dzięki ...   23.03.2006, 14:57:19


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

 



RSS Aktualny czas: 17.10.2025 - 19:50