Location: PHPKode > projects > phc > test/subjects/codegen/unset_global_global.php
<?php
/*
 * What happens when we unset($GLOBALS)? To set of tests, once where we unset
 * $GLOBALS from the global scope, and once where we unset it in every local
 * scope (in unset_local_global.php).
 */

	function show_global_x1()
	{
		global $x1;
		echo "x1: $x1\n";
	}

	function show_global_x2()
	{
		echo "x2: $GLOBALS[x2]\n";
	}

	function set_global_y1()
	{
		global $y1;
		$y1 = 30;
	}

	function set_global_y2()
	{
		$GLOBALS["y2"] = 40;
	}

	// First test; everything works as expected

	$x1 = 10;
	$x2 = 20;
	unset($y1);
	unset($y2);
	show_global_x1();
	show_global_x2();
	set_global_y1();
	set_global_y2();
	echo "y1: $y1\n";
	echo "y2: $y2\n";

	// Second test, after unset($GLOBALS) in the global scope
	// $x2 and $y2 now disappear, but $x1 and $y1 still work

	unset($GLOBALS);

	$x1 = 10;
	$x2 = 20;
	unset($y1);
	unset($y2);
	show_global_x1();
	show_global_x2();
	set_global_y1();
	set_global_y2();
	echo "y1: $y1\n";
	echo "y2: $y2\n";
?>
Return current item: phc