- AMD GPU-k jövője - amit tudni vélünk
- AMD Navi Radeon™ RX 9xxx sorozat
- Lenovo Legion és IdeaPad Y széria
- OLED TV topic
- 5.1, 7.1 és gamer fejhallgatók
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Épített vízhűtés (nem kompakt) topic
- Kompakt vízhűtés
- Milyen billentyűzetet vegyek?
- VR topik (Oculus Rift, stb.)
Ú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
- Apple iPhone 16 Pro Max 256GB desert titanium
- Delonghi Dedica 685 Red + Tchibo kávéörlő
- Apple iPhone 15 Pro Max 256GB,Átlagos,Adatkábel,12 hónap garanciával
- Samsung Galaxy s25 256GB,Uj, Dobozával 12 hónap garanciával
- ÚJ SOHA NEM HASZNÁLT! Hihetetlen minőség megfizethető áron! Razer blade 17 RTX2080super 4koled TOUCH
- Bomba ár! Dell Vostro 3500 - i3-350M I 4GB I 320GB I DVDRW I 15,6" HD I HDMI I Cam I Garancia!
- BESZÁMÍTÁS! MSI B760 i7 13700K 32GB DDR4 2TB SSD RTX 4080 16GB be quiet! 500DX Seasonic 750W
- Kèszleten levő VGA-k! Kamatmentes rèszletre is! Èrdeklődj!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- 137 - Lenovo Legion Pro 7 (16IRX9H) - Intel Core i9-14900HX, RTX 4080
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest