Arrays Foreach-loops
Array Assignments
•
In JavaScript arrays were objects and as a consequence array
assignments were done by reference
•
In PHP, this is not the case
$m em1 = memory _ g e t _ u s a ge ();
$ar ray1 = r ang e (1 , 1000);
$m em2 = memory _ g e t _ u s a ge ();
echo " (1) " ,spri ntf (" %6d " ,$ mem2 - $ mem1 )," more b yte s \n";
$ar ray2 = $ar ray1 ;
$m em3 = memory _ g e t _ u s a ge ();
echo " (2) " ,spri ntf (" %6d " ,$ mem3 - $ mem2 )," more b yte s \n";
$ar ray2 [1] += 1 0000 ;
echo "\ $a rray1 [1] = ", $a rray1 [1] ," | " ;
echo "\ $a rray2 [1] = ", $a rray2 [1] ,"\ n " ;
$m em4 = memory _ g e t _ u s a ge ();
echo " (3) " ,spri ntf (" %6d " ,$ mem4 - $ mem3 )," more b yte s \n";
(1) 36920 more bytes
(2) 0 more bytes
$ar ray1 [1] = 2 | $ arra y2 [1] = 10 002
(3) 36920 more bytes
The PHP implementation uses copy-on-write for array assignments
COMP519 Web Programming Lecture 20 Slide L20 – 16