1--TEST-- 2Test -N operator : various numbers as strings 3--FILE-- 4<?php 5 6$strVals = array( 7 "0","65","-44", "1.2", "-7.7", "abc", "123abc", "123e5", "123e5xyz", " 123abc", "123 abc", "123abc ", "3.4a", 8 "a5.9" 9); 10 11foreach ($strVals as $strVal) { 12 echo "--- testing: '$strVal' ---\n"; 13 try { 14 var_dump(-$strVal); 15 } catch (\TypeError $e) { 16 echo $e->getMessage() . \PHP_EOL; 17 } 18} 19 20?> 21--EXPECTF-- 22--- testing: '0' --- 23int(0) 24--- testing: '65' --- 25int(-65) 26--- testing: '-44' --- 27int(44) 28--- testing: '1.2' --- 29float(-1.2) 30--- testing: '-7.7' --- 31float(7.7) 32--- testing: 'abc' --- 33Unsupported operand types: string * int 34--- testing: '123abc' --- 35 36Warning: A non-numeric value encountered in %s on line %d 37int(-123) 38--- testing: '123e5' --- 39float(-12300000) 40--- testing: '123e5xyz' --- 41 42Warning: A non-numeric value encountered in %s on line %d 43float(-12300000) 44--- testing: ' 123abc' --- 45 46Warning: A non-numeric value encountered in %s on line %d 47int(-123) 48--- testing: '123 abc' --- 49 50Warning: A non-numeric value encountered in %s on line %d 51int(-123) 52--- testing: '123abc ' --- 53 54Warning: A non-numeric value encountered in %s on line %d 55int(-123) 56--- testing: '3.4a' --- 57 58Warning: A non-numeric value encountered in %s on line %d 59float(-3.4) 60--- testing: 'a5.9' --- 61Unsupported operand types: string * int 62