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
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




no bo ja mówilem własnie o inicjacji (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) (IMG:http://forum.php.pl/style_emoticons/default/laugh.gif)
ok, dzięki za zwrócenie uwagi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Cytat
no niby tak, ale to mogły być poprostu zmienne zarezerwowane (tak jak $this)... no cóż może w któreś wersji ogólnie będzie to inaczej rozwiązane
To juz jest kombinowanie. NIe jestem pewien czy takie rezerwowane zmienne przy foreach mialyby byc takie lepsze
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: 18.10.2025 - 13:15