Függvényhívás tömb paraméterrel
Kódrészlet
function addElement($list)
{
$list[] = 4;
}
$myList = [1, 2, 3];
addElement($myList);
var_dump($myList);
Eredmény
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
Ismét csak a python-os, C#-os, Java-ás stb. beidedződés alapján azt várnám, hogy a $myList
tömb négy elemű lesz, amelynek negyedik eleme 4. Value type VS Reference type. A PHP a tömböknél nem a referenciát adja át, hanem másol, gyakorlatilag érték típusként viselkedik. A megoldás &
operátor alkalmazása a pareméterek definiálásánál... Az csak történelmi érdekesség, hogy PHP4-es esetében az objektumoknál is alkalmazni kellett az &
operátort, például assignment esetén is. Szerencsére azóta már az objektumok Reference type-ok a PHP varázslatos világában is...