--TEST-- SPL: FixedArray: Non integer offset handling --FILE-- getMessage(), "\n"; } try { $o[new stdClass()] = 'e'; } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } try { $o[$r] = 'f'; } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } $o['3'] = 'g'; try { $o['3.5'] = 'h'; } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } try { $o['03'] = 'i'; } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } try { $o[' 3'] = 'j'; } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } echo 'Read context', \PHP_EOL; var_dump($o[false]); var_dump($o[true]); var_dump($o[2.5]); try { var_dump($o[[]]); } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } try { var_dump($o[new stdClass()]); } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } try { var_dump($o[$r]); } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } var_dump($o['3']); try { var_dump($o['3.5']); } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } try { var_dump($o['03']); } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } try { var_dump($o[' 3']); } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } echo 'isset()', \PHP_EOL; var_dump(isset($o[false])); var_dump(isset($o[true])); var_dump(isset($o[2.5])); try { var_dump(isset($o[[]])); } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } try { var_dump(isset($o[new stdClass()])); } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } try { var_dump(isset($o[$r])); } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } var_dump(isset($o['3'])); try { var_dump(isset($o['3.5'])); } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } try { var_dump(isset($o['03'])); } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } try { var_dump(isset($o[' 3'])); } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } echo 'empty()', \PHP_EOL; var_dump(empty($o[false])); var_dump(empty($o[true])); var_dump(empty($o[2.5])); try { var_dump(empty($o[[]])); } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } try { var_dump(empty($o[new stdClass()])); } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } try { var_dump(empty($o[$r])); } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } var_dump(empty($o['3'])); try { var_dump(empty($o['3.5'])); } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } try { var_dump(empty($o['03'])); } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } try { var_dump(empty($o[' 3'])); } catch (\TypeError $e) { echo $e->getMessage(), "\n"; } ?> --EXPECTF-- Write context Deprecated: Implicit conversion from float 2.5 to int loses precision in %s on line %d Illegal offset type Illegal offset type Warning: Resource ID#%d used as offset, casting to integer (%d) in %s on line %d Illegal offset type Illegal offset type Illegal offset type Read context string(1) "a" string(1) "b" Deprecated: Implicit conversion from float 2.5 to int loses precision in %s on line %d string(1) "c" Illegal offset type Illegal offset type Warning: Resource ID#%d used as offset, casting to integer (%d) in %s on line %d string(1) "f" string(1) "g" Illegal offset type Illegal offset type Illegal offset type isset() bool(true) bool(true) Deprecated: Implicit conversion from float 2.5 to int loses precision in %s on line %d bool(true) Illegal offset type Illegal offset type Warning: Resource ID#%d used as offset, casting to integer (%d) in %s on line %d bool(true) bool(true) Illegal offset type Illegal offset type Illegal offset type empty() bool(false) bool(false) Deprecated: Implicit conversion from float 2.5 to int loses precision in %s on line %d bool(false) Illegal offset type Illegal offset type Warning: Resource ID#%d used as offset, casting to integer (%d) in %s on line %d bool(false) bool(false) Illegal offset type Illegal offset type Illegal offset type