Location: PHPKode > projects > phc > test/subjects/codegen/masquarading_int_keys.php
<?php

	/* String which contain just ints are treated as int keys. This enumerates special cases, which are:
	 *		leading '-' OK, 
	 *		leading '0' not OK,
	 *		decimal only,
	 *		LONG_INT and LONG_MAX excluded
	 */

	$x = array ("0", // int
					"1", // int
					"12345", // int
					"-012345", // not int (leading 0)
					"-12345", // int
					"01", // not int (leading 0)
					"-0", // not int
					"-1", // int
					"-", // not int
//					"", // cb_mir doesnt support this. TODO allow a way of skipping this test for cb_mir, without turning off the CompiledVsInterpreted test
					"123x", // not int
					"-123x", // not int
					"0x", // not int (decimal only)
					"00", // not int (leading 0)
					"-9223372036854775809", // not int (64 bit LONG_MIN - 1)
					"-9223372036854775808", // not int (64 bit LONG_MIN)
					"-9223372036854775807", // int (64 bit LONG_MIN + 1)
					"9223372036854775808", // not int (64 bit LONG_MAX + 1)
					"9223372036854775807", // not int (64 bit LONG_MAX)
					"9223372036854775806", // int (64 bit LONG_MAX - 1)
					"-2147483649", // not int (32 bit LONG_MIN - 1)
					"-2147483648", // int on 64 bit only (32 bit LONG_MIN)
					"-2147483647", // int (32 bit LONG_MIN - 1)
					"2147483648", // not int (32 bit LONG_MAX + 1)
					"2147483647", // int on 64 bit only (32 bit LONG_MAX)
					"2147483646", // int (32 bit LONG_MAX - 1)
					"0x17", // not int (no hex)
					"0xa17", // not int (decimal only)
					);

		foreach ($x as $key)
		{
			$y[$key] = $key;
		}

		foreach ($y as $key => $value)
		{
			var_dump ($key);
			var_dump ($value);
		}
?>
Return current item: phc