Change A Static Variable Outside Its Function
<?php
function &foo() {
static $x = [];
print_r($x);
return $x;
}
$a = foo()[] = 3;
var_dump($a);
foo();
Static variables are persistent between calls to the same method. They are local, unless they are returned with a reference. Then, they can be accessed in the main code, and read or even written.
This is the case here, without even storing the value: it is actually updated on the fly with the array notation on the function call.
See Also
PHP Features
Last updated: 10 September 2026