3v4l.org

run code in 300+ PHP versions simultaneously
<pre><?php $var1 = 'ccc'; $var2 = 'ccc'; echo "separate variables\n"; debug_zval_dump($var1); echo "Copying variable just adds references to the same value\n"; $copy = $var1; debug_zval_dump($var1, $copy); echo "Using a reference adds references to the same value \n"; $reference =& $var2; debug_zval_dump($var2, $reference); echo "Using a copy and a reference of the same value actually creates a clone \n"; $reference2 =& $var1; debug_zval_dump($var1, $copy, $reference2);
Output for 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
<pre>separate variables string(3) "ccc" interned Copying variable just adds references to the same value string(3) "ccc" interned string(3) "ccc" interned Using a reference adds references to the same value string(3) "ccc" interned string(3) "ccc" interned Using a copy and a reference of the same value actually creates a clone string(3) "ccc" interned string(3) "ccc" interned string(3) "ccc" interned
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 <pre>separate variables string(3) "ccc" interned Copying variable just adds references to the same value string(3) "ccc" interned string(3) "ccc" interned Using a reference adds references to the same value string(3) "ccc" interned string(3) "ccc" interned Using a copy and a reference of the same value actually creates a clone string(3) "ccc" interned string(3) "ccc" interned string(3) "ccc" interned
Output for 7.0.0 - 7.0.20, 7.1.0, 7.1.7 - 7.1.20, 7.2.0 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30
<pre>separate variables string(3) "ccc" refcount(1) Copying variable just adds references to the same value string(3) "ccc" refcount(1) string(3) "ccc" refcount(1) Using a reference adds references to the same value string(3) "ccc" refcount(1) string(3) "ccc" refcount(1) Using a copy and a reference of the same value actually creates a clone string(3) "ccc" refcount(1) string(3) "ccc" refcount(1) string(3) "ccc" refcount(1)
Output for 7.1.5 - 7.1.6
<pre>separate variables string(3) "ccc" refcount(3) Copying variable just adds references to the same value string(3) "ccc" refcount(5) string(3) "ccc" refcount(5) Using a reference adds references to the same value string(3) "ccc" refcount(4) string(3) "ccc" refcount(4) Using a copy and a reference of the same value actually creates a clone string(3) "ccc" refcount(6) string(3) "ccc" refcount(6) string(3) "ccc" refcount(6)
Output for 4.3.0 - 4.3.11, 4.4.0 - 4.4.9, 5.0.0 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.24 - 5.5.35, 5.6.8 - 5.6.28
<pre>separate variables string(3) "ccc" refcount(2) Copying variable just adds references to the same value string(3) "ccc" refcount(4) string(3) "ccc" refcount(4) Using a reference adds references to the same value string(3) "ccc" refcount(1) string(3) "ccc" refcount(1) Using a copy and a reference of the same value actually creates a clone string(3) "ccc" refcount(1) string(3) "ccc" refcount(2) string(3) "ccc" refcount(1)

preferences:
244.97 ms | 404 KiB | 312 Q