Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Problem z referencją, podczas operacji na tablicy
Jarod
post
Post #1





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Nie wiem czy to ma znaczenie ale używam php 5.2.0. W php referencje pozwalają na stworzenie dwóch zmiennych odwołujących się do tej samej zmiennej. Podczas przeglądania tablicy funkcją foreach(), potrzebowałem nadpisywać/kasować pewne dane. Były dwa wyjścia:
1. najpierw przelecieć przez całą tablicę i do nowej tablicy przerzucić tylko te dane, które mnie interesują
2. usuwać/nadpisywać dane podczas przeglądania

Działanie poniższego kodu jest dla mnie niezrozumiałe. Czy może mi ktoś to wyjaśnić?

  1. <?php
  2. $tablica = array('1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11');
  3. //$tablicaRef = &$tablica;
  4. foreach($tablica As $key => $element)
  5. {
  6. $tablica[1] = 'WARTOŚĆ NADPISANA';
  7. echo $key . ' => ' . $element . '<br />';
  8. }
  9. echo '<br />--------------<br />';
  10. foreach($tablica As $key => $element)
  11. {
  12. $tablica[1] = 'WARTOŚĆ NADPISANA';
  13. echo $key . ' => ' . $element . '<br />';
  14. }
  15. ?>

Dopiero przy drugim przeglądaniu tablicy znajduje się wartość nadpisana. Jeśli odkomentuję drugą linijkę to w obydwóch przebiegach pętli znajdzie się wartość nadpisana.. Pomimo tego, że stworzyłem referencję a i tak korzystam z $tablica.. blinksmiley.gif


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 19.08.2025 - 23:42