操作碼來foreach
密鑰和值:
BCDF9C 0005: FE_RESET (CV 0 ($array), u) -> VAR 2
BCE014 0005: FE_FETCH (VAR 2, u) -> VAR 3
BCE08C 0005: OP_DATA (u VAR 0 &(0+2208F38), u VAR 0 &(0+2208F38)) -> TMP_VAR 5 &(C8+2208F39)
BCE104 0005: ASSIGN (CV 2 ($value), VAR 3) -> VAR 4
BCE17C 0005: ASSIGN (CV 1 ($key), TMP_VAR 5) -> VAR 6
BCE1F4 0005: JMP (u &(BCDFA0+4))
BCE26C 0005: SWITCH_FREE (VAR 2)
操作碼來foreach
只值:
BCE2E4 0007: FE_RESET (CV 0 ($array), u) -> VAR 7
BCE35C 0007: FE_FETCH (VAR 7, u) -> VAR 8
BCE3D4 0007: OP_DATA (u VAR 0 &(0+2208F38), u VAR 0 &(0+2208F38)) -> u VAR 0 &(0+2208F38)
BCE44C 0007: ASSIGN (CV 2 ($value), VAR 8) -> VAR 9
BCE4C4 0007: JMP (u &(BCE2E8+B))
BCE53C 0007: SWITCH_FREE (VAR 7)
對不起,我奇怪的操作碼錶示。
基本上,沒有鍵的版本每次迭代都會分配兩個較少的變量。它不分配鍵和臨時變量,但它只是直接分配var。
來源
2011-05-25 20:05:57
rid
[參考 - 這個符號在PHP中意味着什麼?](http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – 2011-05-25 20:25:43