1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00
Files
Nikita Popov 3c68f38fda Restrict allowed usages of $GLOBALS
This restricts allowed usage of $GLOBALS, with the effect that
plain PHP arrays can no longer contain INDIRECT elements.

RFC: https://wiki.php.net/rfc/restrict_globals_usage

Closes GH-6487.
2021-01-06 12:46:24 +01:00

53 lines
761 B
PHP

--TEST--
Supported operations on $GLOBALS
--FILE--
<?php
function test() {
var_dump($GLOBALS['x']);
$GLOBALS['x'] = 1;
var_dump($GLOBALS['x']);
$GLOBALS['x']++;
var_dump($GLOBALS['x']);
$GLOBALS['x'] += 2;
var_dump($GLOBALS['x']);
unset($GLOBALS['y']);
var_dump(isset($GLOBALS['x']));
var_dump(isset($GLOBALS['y']));
$GLOBALS['z'][] = 1;
}
$y = 1;
test();
var_dump($x, $y, $z);
$ref = 1;
$GLOBALS['z'] =& $ref;
$ref++;
var_dump($z);
$x = 1;
$ref2 =& $GLOBALS['x'];
$ref2++;
var_dump($x);
?>
--EXPECTF--
Warning: Undefined global variable $x in %s on line %d
NULL
int(1)
int(2)
int(4)
bool(true)
bool(false)
Warning: Undefined variable $y in %s on line %d
int(4)
NULL
array(1) {
[0]=>
int(1)
}
int(2)
int(2)