PHPでは配列は値渡し


あるバージョンのPHPでは配列は参照渡しだったという記事も見かけましたが、現在(v5.3)では値渡しのようです。

<?php
$a = array(10,20,30);
$b = $a;

$a[0] = 100;
$b[0] = 1000;

echo "\$a[0] is $a[0]\n";
echo "\$b[0] is $b[0]\n";
?>
$a[0] is 100
$b[0] is 1000


Rubyでは参照渡しになるので、間違わないように注意が必要です。

a = [10,20,30]
b = a

a[0] = 100
b[0] = 1000

puts "a[0] is #{a[0]}"
puts "b[0] is #{b[0]}"
a[0] is 1000
b[0] is 1000