1--TEST-- 2Decrementing objects which are castable to numeric types 3--EXTENSIONS-- 4zend_test 5--FILE-- 6<?php 7 8$l = new LongCastableNoOperations(5); 9$f = new FloatCastableNoOperations(15.8); 10$nl = new NumericCastableNoOperations(52); 11$nf = new NumericCastableNoOperations(58.3); 12 13/* Check normal arithmetic */ 14try { 15 var_dump($l - 1); 16} catch (\TypeError $e) { 17 echo $e->getMessage(), PHP_EOL; 18} 19 20try { 21 var_dump($f - 1); 22} catch (\TypeError $e) { 23 echo $e->getMessage(), PHP_EOL; 24} 25 26try { 27 var_dump($nl - 1); 28} catch (\TypeError $e) { 29 echo $e->getMessage(), PHP_EOL; 30} 31 32try { 33 var_dump($nf - 1); 34} catch (\TypeError $e) { 35 echo $e->getMessage(), PHP_EOL; 36} 37 38/* Decrement */ 39try { 40 $l--; 41 var_dump($l); 42} catch (\TypeError $e) { 43 echo $e->getMessage(), PHP_EOL; 44} 45 46try { 47 $f--; 48 var_dump($f); 49} catch (\TypeError $e) { 50 echo $e->getMessage(), PHP_EOL; 51} 52 53try { 54 $nl--; 55 var_dump($nl); 56} catch (\TypeError $e) { 57 echo $e->getMessage(), PHP_EOL; 58} 59 60try { 61 $nf--; 62 var_dump($nf); 63} catch (\TypeError $e) { 64 echo $e->getMessage(), PHP_EOL; 65} 66 67?> 68--EXPECT-- 69Unsupported operand types: LongCastableNoOperations - int 70Unsupported operand types: FloatCastableNoOperations - int 71int(51) 72float(57.3) 73Cannot decrement LongCastableNoOperations 74Cannot decrement FloatCastableNoOperations 75int(51) 76float(57.3) 77