Copy On Write (COW)

Copy on write, or COW, is a data management technic where data is shared between contexts, until is is actually modified. When a modification happens, the data is then duplicated, to avoid polluting the original data. Otherwise, simple reads keep the data intact, and save a copy operation and memory.

PHP uses this technic for arrays and strings, unless they are passed by reference. It is totally transparent for the code.

<?php

    $array = [1,2,3];

    function foo($a) {
        echo $a[1]; //

        $a[2] = 4; // $a is copied, then modified.
    }

?>

Documentation

See also https://www.zend.com/resources/php-extensions/copy-on-write

Related : Internals