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