1--TEST-- 2Test + 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 11error_reporting(E_ERROR); 12 13foreach ($strVals as $strVal) { 14 foreach($strVals as $otherVal) { 15 echo "--- testing: '$strVal' + '$otherVal' ---\n"; 16 var_dump($strVal+$otherVal); 17 } 18} 19 20 21?> 22===DONE=== 23--EXPECT-- 24--- testing: '0' + '0' --- 25int(0) 26--- testing: '0' + '65' --- 27int(65) 28--- testing: '0' + '-44' --- 29int(-44) 30--- testing: '0' + '1.2' --- 31float(1.2) 32--- testing: '0' + '-7.7' --- 33float(-7.7) 34--- testing: '0' + 'abc' --- 35int(0) 36--- testing: '0' + '123abc' --- 37int(123) 38--- testing: '0' + '123e5' --- 39float(12300000) 40--- testing: '0' + '123e5xyz' --- 41float(12300000) 42--- testing: '0' + ' 123abc' --- 43int(123) 44--- testing: '0' + '123 abc' --- 45int(123) 46--- testing: '0' + '123abc ' --- 47int(123) 48--- testing: '0' + '3.4a' --- 49float(3.4) 50--- testing: '0' + 'a5.9' --- 51int(0) 52--- testing: '65' + '0' --- 53int(65) 54--- testing: '65' + '65' --- 55int(130) 56--- testing: '65' + '-44' --- 57int(21) 58--- testing: '65' + '1.2' --- 59float(66.2) 60--- testing: '65' + '-7.7' --- 61float(57.3) 62--- testing: '65' + 'abc' --- 63int(65) 64--- testing: '65' + '123abc' --- 65int(188) 66--- testing: '65' + '123e5' --- 67float(12300065) 68--- testing: '65' + '123e5xyz' --- 69float(12300065) 70--- testing: '65' + ' 123abc' --- 71int(188) 72--- testing: '65' + '123 abc' --- 73int(188) 74--- testing: '65' + '123abc ' --- 75int(188) 76--- testing: '65' + '3.4a' --- 77float(68.4) 78--- testing: '65' + 'a5.9' --- 79int(65) 80--- testing: '-44' + '0' --- 81int(-44) 82--- testing: '-44' + '65' --- 83int(21) 84--- testing: '-44' + '-44' --- 85int(-88) 86--- testing: '-44' + '1.2' --- 87float(-42.8) 88--- testing: '-44' + '-7.7' --- 89float(-51.7) 90--- testing: '-44' + 'abc' --- 91int(-44) 92--- testing: '-44' + '123abc' --- 93int(79) 94--- testing: '-44' + '123e5' --- 95float(12299956) 96--- testing: '-44' + '123e5xyz' --- 97float(12299956) 98--- testing: '-44' + ' 123abc' --- 99int(79) 100--- testing: '-44' + '123 abc' --- 101int(79) 102--- testing: '-44' + '123abc ' --- 103int(79) 104--- testing: '-44' + '3.4a' --- 105float(-40.6) 106--- testing: '-44' + 'a5.9' --- 107int(-44) 108--- testing: '1.2' + '0' --- 109float(1.2) 110--- testing: '1.2' + '65' --- 111float(66.2) 112--- testing: '1.2' + '-44' --- 113float(-42.8) 114--- testing: '1.2' + '1.2' --- 115float(2.4) 116--- testing: '1.2' + '-7.7' --- 117float(-6.5) 118--- testing: '1.2' + 'abc' --- 119float(1.2) 120--- testing: '1.2' + '123abc' --- 121float(124.2) 122--- testing: '1.2' + '123e5' --- 123float(12300001.2) 124--- testing: '1.2' + '123e5xyz' --- 125float(12300001.2) 126--- testing: '1.2' + ' 123abc' --- 127float(124.2) 128--- testing: '1.2' + '123 abc' --- 129float(124.2) 130--- testing: '1.2' + '123abc ' --- 131float(124.2) 132--- testing: '1.2' + '3.4a' --- 133float(4.6) 134--- testing: '1.2' + 'a5.9' --- 135float(1.2) 136--- testing: '-7.7' + '0' --- 137float(-7.7) 138--- testing: '-7.7' + '65' --- 139float(57.3) 140--- testing: '-7.7' + '-44' --- 141float(-51.7) 142--- testing: '-7.7' + '1.2' --- 143float(-6.5) 144--- testing: '-7.7' + '-7.7' --- 145float(-15.4) 146--- testing: '-7.7' + 'abc' --- 147float(-7.7) 148--- testing: '-7.7' + '123abc' --- 149float(115.3) 150--- testing: '-7.7' + '123e5' --- 151float(12299992.3) 152--- testing: '-7.7' + '123e5xyz' --- 153float(12299992.3) 154--- testing: '-7.7' + ' 123abc' --- 155float(115.3) 156--- testing: '-7.7' + '123 abc' --- 157float(115.3) 158--- testing: '-7.7' + '123abc ' --- 159float(115.3) 160--- testing: '-7.7' + '3.4a' --- 161float(-4.3) 162--- testing: '-7.7' + 'a5.9' --- 163float(-7.7) 164--- testing: 'abc' + '0' --- 165int(0) 166--- testing: 'abc' + '65' --- 167int(65) 168--- testing: 'abc' + '-44' --- 169int(-44) 170--- testing: 'abc' + '1.2' --- 171float(1.2) 172--- testing: 'abc' + '-7.7' --- 173float(-7.7) 174--- testing: 'abc' + 'abc' --- 175int(0) 176--- testing: 'abc' + '123abc' --- 177int(123) 178--- testing: 'abc' + '123e5' --- 179float(12300000) 180--- testing: 'abc' + '123e5xyz' --- 181float(12300000) 182--- testing: 'abc' + ' 123abc' --- 183int(123) 184--- testing: 'abc' + '123 abc' --- 185int(123) 186--- testing: 'abc' + '123abc ' --- 187int(123) 188--- testing: 'abc' + '3.4a' --- 189float(3.4) 190--- testing: 'abc' + 'a5.9' --- 191int(0) 192--- testing: '123abc' + '0' --- 193int(123) 194--- testing: '123abc' + '65' --- 195int(188) 196--- testing: '123abc' + '-44' --- 197int(79) 198--- testing: '123abc' + '1.2' --- 199float(124.2) 200--- testing: '123abc' + '-7.7' --- 201float(115.3) 202--- testing: '123abc' + 'abc' --- 203int(123) 204--- testing: '123abc' + '123abc' --- 205int(246) 206--- testing: '123abc' + '123e5' --- 207float(12300123) 208--- testing: '123abc' + '123e5xyz' --- 209float(12300123) 210--- testing: '123abc' + ' 123abc' --- 211int(246) 212--- testing: '123abc' + '123 abc' --- 213int(246) 214--- testing: '123abc' + '123abc ' --- 215int(246) 216--- testing: '123abc' + '3.4a' --- 217float(126.4) 218--- testing: '123abc' + 'a5.9' --- 219int(123) 220--- testing: '123e5' + '0' --- 221float(12300000) 222--- testing: '123e5' + '65' --- 223float(12300065) 224--- testing: '123e5' + '-44' --- 225float(12299956) 226--- testing: '123e5' + '1.2' --- 227float(12300001.2) 228--- testing: '123e5' + '-7.7' --- 229float(12299992.3) 230--- testing: '123e5' + 'abc' --- 231float(12300000) 232--- testing: '123e5' + '123abc' --- 233float(12300123) 234--- testing: '123e5' + '123e5' --- 235float(24600000) 236--- testing: '123e5' + '123e5xyz' --- 237float(24600000) 238--- testing: '123e5' + ' 123abc' --- 239float(12300123) 240--- testing: '123e5' + '123 abc' --- 241float(12300123) 242--- testing: '123e5' + '123abc ' --- 243float(12300123) 244--- testing: '123e5' + '3.4a' --- 245float(12300003.4) 246--- testing: '123e5' + 'a5.9' --- 247float(12300000) 248--- testing: '123e5xyz' + '0' --- 249float(12300000) 250--- testing: '123e5xyz' + '65' --- 251float(12300065) 252--- testing: '123e5xyz' + '-44' --- 253float(12299956) 254--- testing: '123e5xyz' + '1.2' --- 255float(12300001.2) 256--- testing: '123e5xyz' + '-7.7' --- 257float(12299992.3) 258--- testing: '123e5xyz' + 'abc' --- 259float(12300000) 260--- testing: '123e5xyz' + '123abc' --- 261float(12300123) 262--- testing: '123e5xyz' + '123e5' --- 263float(24600000) 264--- testing: '123e5xyz' + '123e5xyz' --- 265float(24600000) 266--- testing: '123e5xyz' + ' 123abc' --- 267float(12300123) 268--- testing: '123e5xyz' + '123 abc' --- 269float(12300123) 270--- testing: '123e5xyz' + '123abc ' --- 271float(12300123) 272--- testing: '123e5xyz' + '3.4a' --- 273float(12300003.4) 274--- testing: '123e5xyz' + 'a5.9' --- 275float(12300000) 276--- testing: ' 123abc' + '0' --- 277int(123) 278--- testing: ' 123abc' + '65' --- 279int(188) 280--- testing: ' 123abc' + '-44' --- 281int(79) 282--- testing: ' 123abc' + '1.2' --- 283float(124.2) 284--- testing: ' 123abc' + '-7.7' --- 285float(115.3) 286--- testing: ' 123abc' + 'abc' --- 287int(123) 288--- testing: ' 123abc' + '123abc' --- 289int(246) 290--- testing: ' 123abc' + '123e5' --- 291float(12300123) 292--- testing: ' 123abc' + '123e5xyz' --- 293float(12300123) 294--- testing: ' 123abc' + ' 123abc' --- 295int(246) 296--- testing: ' 123abc' + '123 abc' --- 297int(246) 298--- testing: ' 123abc' + '123abc ' --- 299int(246) 300--- testing: ' 123abc' + '3.4a' --- 301float(126.4) 302--- testing: ' 123abc' + 'a5.9' --- 303int(123) 304--- testing: '123 abc' + '0' --- 305int(123) 306--- testing: '123 abc' + '65' --- 307int(188) 308--- testing: '123 abc' + '-44' --- 309int(79) 310--- testing: '123 abc' + '1.2' --- 311float(124.2) 312--- testing: '123 abc' + '-7.7' --- 313float(115.3) 314--- testing: '123 abc' + 'abc' --- 315int(123) 316--- testing: '123 abc' + '123abc' --- 317int(246) 318--- testing: '123 abc' + '123e5' --- 319float(12300123) 320--- testing: '123 abc' + '123e5xyz' --- 321float(12300123) 322--- testing: '123 abc' + ' 123abc' --- 323int(246) 324--- testing: '123 abc' + '123 abc' --- 325int(246) 326--- testing: '123 abc' + '123abc ' --- 327int(246) 328--- testing: '123 abc' + '3.4a' --- 329float(126.4) 330--- testing: '123 abc' + 'a5.9' --- 331int(123) 332--- testing: '123abc ' + '0' --- 333int(123) 334--- testing: '123abc ' + '65' --- 335int(188) 336--- testing: '123abc ' + '-44' --- 337int(79) 338--- testing: '123abc ' + '1.2' --- 339float(124.2) 340--- testing: '123abc ' + '-7.7' --- 341float(115.3) 342--- testing: '123abc ' + 'abc' --- 343int(123) 344--- testing: '123abc ' + '123abc' --- 345int(246) 346--- testing: '123abc ' + '123e5' --- 347float(12300123) 348--- testing: '123abc ' + '123e5xyz' --- 349float(12300123) 350--- testing: '123abc ' + ' 123abc' --- 351int(246) 352--- testing: '123abc ' + '123 abc' --- 353int(246) 354--- testing: '123abc ' + '123abc ' --- 355int(246) 356--- testing: '123abc ' + '3.4a' --- 357float(126.4) 358--- testing: '123abc ' + 'a5.9' --- 359int(123) 360--- testing: '3.4a' + '0' --- 361float(3.4) 362--- testing: '3.4a' + '65' --- 363float(68.4) 364--- testing: '3.4a' + '-44' --- 365float(-40.6) 366--- testing: '3.4a' + '1.2' --- 367float(4.6) 368--- testing: '3.4a' + '-7.7' --- 369float(-4.3) 370--- testing: '3.4a' + 'abc' --- 371float(3.4) 372--- testing: '3.4a' + '123abc' --- 373float(126.4) 374--- testing: '3.4a' + '123e5' --- 375float(12300003.4) 376--- testing: '3.4a' + '123e5xyz' --- 377float(12300003.4) 378--- testing: '3.4a' + ' 123abc' --- 379float(126.4) 380--- testing: '3.4a' + '123 abc' --- 381float(126.4) 382--- testing: '3.4a' + '123abc ' --- 383float(126.4) 384--- testing: '3.4a' + '3.4a' --- 385float(6.8) 386--- testing: '3.4a' + 'a5.9' --- 387float(3.4) 388--- testing: 'a5.9' + '0' --- 389int(0) 390--- testing: 'a5.9' + '65' --- 391int(65) 392--- testing: 'a5.9' + '-44' --- 393int(-44) 394--- testing: 'a5.9' + '1.2' --- 395float(1.2) 396--- testing: 'a5.9' + '-7.7' --- 397float(-7.7) 398--- testing: 'a5.9' + 'abc' --- 399int(0) 400--- testing: 'a5.9' + '123abc' --- 401int(123) 402--- testing: 'a5.9' + '123e5' --- 403float(12300000) 404--- testing: 'a5.9' + '123e5xyz' --- 405float(12300000) 406--- testing: 'a5.9' + ' 123abc' --- 407int(123) 408--- testing: 'a5.9' + '123 abc' --- 409int(123) 410--- testing: 'a5.9' + '123abc ' --- 411int(123) 412--- testing: 'a5.9' + '3.4a' --- 413float(3.4) 414--- testing: 'a5.9' + 'a5.9' --- 415int(0) 416===DONE=== 417