by ryou

配列は、PHPは値渡しでJSは参照渡しということを忘れてた

両方共参照渡しかと勘違いしていた。

<?php

$a = [1, 2, 3, 4, 5];
$b = $a;
$b[0] = 100;

var_dump($a);
/*
array(5) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
}
*/

var_dump($b);
/*
array(5) {
  [0]=>
  int(100)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
}
*/
var a = [1, 2, 3, 4, 5];
var b = a;
b[0] = 100;

console.log(a); // [ 100, 2, 3, 4, 5 ]
console.log(b); // [ 100, 2, 3, 4, 5 ]

上記のようにPHPはコピー先の配列を弄っても元配列に影響はないが、JSは影響する。