3v4l.org

run code in 300+ PHP versions simultaneously
<?php $a = [1, 2]; $b = $a; $a[] = 3; $b[] = 4; echo "When next index=2 and max key=2, next key is both 2.\n"; var_dump($a, $b); // $a = [0=>1, 1=>2, 2=>3] $b = [0=>1, 1=>2, 2=>4] $a = [1, 2]; unset($a[1]); $b = $a; $a[] = 3; $b[] = 4; echo "\nWhen next index=2 and max key=1, next key is both 2. \n"; var_dump($a, $b); // $a = [0=>1, 2=>3] $b = [0=>1, 2=>4] $a = [1, 2]; unset($a[1], $a[0]); $b = $a; $a[] = 3; $b[] = 4; echo "\nWhen next index=2 and max key=0, next key is 0 or 2."; var_dump($a, $b); // $a = [0=>3] $b = [2=>4] what? $a = [1, 2]; unset($a[1], $a[0]); $b = $a; $b[] = 4; $a[] = 3; echo "\nIf reverse variable, result is reverse too.\n"; var_dump($a, $b); // $a = [2=>3] $b = [0=>4] what?? $a = [1, 2]; unset($a[1], $a[0]); $b = $c = $d = $a; $a[] = 3; $b[] = 4; $d[] = 6; $c[] = 5; echo "\nWhen increase variables, only the last one take over key..\n"; var_dump($a, $b, $c, $d); // $c's key is 2, others are 0

preferences:
52.79 ms | 402 KiB | 5 Q