Hirdetés
- Alaposan felpumpálta AI gyorsítójának izmait a Google
- Kisebb "atomreaktort" avatott a Minisforum
- A Microsoft bedurvult, így a jövőben keményen odacsapnak a veszélyes drivereknek
- Scalperektől félti RAM moduljait a Framework
- Drasztikusan lassíthatja a játékokat egyes VGA-kon a Windows 11 új frissítése
- Olcsó vs. drága egér: melyiknél érzed meg igazán a különbséget?
- Fejhallgató erősítő és DAC topik
- Amlogic S905, S912 processzoros készülékek
- Steam Deck
- Apple asztali gépek
- Scalperektől félti RAM moduljait a Framework
- Épített vízhűtés (nem kompakt) topic
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- SSD kibeszélő
- Kompakt vízhűtés
Új hozzászólás Aktív témák
-
válasz
Sk8erPeter
#12214
üzenetére
$a = array(1, 2, 3, 4);
foreach($a as &$i) echo $i *= 2;
foreach($a as $i) echo $i;A két ciklus "kibontva" valahogy így nézne ki:
/*
* Első foreach
* Itt az 1, 2, 3, 4 tömbből a ref. foreach miatt 2, 4, 6, 8 lesz
*/
&$i = $a[0]; echo $i *= 2;
&$i = $a[1]; echo $i *= 2;
&$i = $a[2]; echo $i *= 2;
&$i = $a[3]; echo $i *= 2;
/*
* Itt $i változó a tömbünk utolsó eleme a referencia miatt
* Tehát ha $i értéke módosul, módosul a tömb utolsó eleme is
* A második foreach kavarodást okoz, mert megint $i-t használjuk:
*/
// A tömb utolsó eleme az első elem is lett egyben (!)
// Azaz a tömb értékei: 2, 4, 6, 2
$i = $a[0]; echo $i;
// Itt az utolsó elem a másodikkal osztozik: 2, 4, 6, 4
$i = $a[1]; echo $i;
// Harmadikkal: 2, 4, 6, 6
$i = $a[2]; echo $i;
// Végül saját magával, de ő a harmadikra mutat, így...
// ...marad ahogy volt: 2, 4, 6, 6
$i = $a[3]; echo $i;Tanulság:
Ha referenciás foreach-et használsz, a fura meglepetések és az akár több órás debuggolás elkerülése érdekében MINDEN ESETBEN töröld a referenciát az utolsó elemre a foreach után az unset() függvénnyel, ami az esetünkben $i, tehát:
// Így már jó lesz
$a = array(1, 2, 3, 4);
foreach($a as &$i) echo $i *= 2;
unset($i);
foreach($a as $i) echo $i;
Új hozzászólás Aktív témák
- Launch trailert kapott a Honkai: Star Rail
- Olcsó vs. drága egér: melyiknél érzed meg igazán a különbséget?
- Temu
- Steam topic
- Gumi és felni topik
- Fejhallgatós találkozó
- Fejhallgató erősítő és DAC topik
- Assetto Corsa Rally
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- KAÜ/Ügyfélkapu – már elérhető a kétfaktoros hitelesítés
- További aktív témák...
- Apple iPhone 11 64GB, Kártyafüggetlen, 1 Év Garanciával
- DJI Osmo Pocket 3
- Eladó szép állapotban levő Apple iPhone 11 64GB fehér / 12 hónap jótállással!
- Bomba ár! HP Elitebook Folio 9470m - i5-3GEN I 8GB I 320GB I 14" HD I Cam I W10 I Garancia!
- ÁRGARANCIA! Épített KomPhone i5 10400F 16/32GB/64GB RAM RTX 5050 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: ATW Internet Kft.
Város: Budapest


