php-src/Zend/tests/shift_001.phpt
George Peter Banyard b2248789ed Implement 'Saner Numeric Strings' RFC:
RFC: https://wiki.php.net/rfc/saner-numeric-strings

This removes the -1 allow_error mode from is_numeric_string functions and replaces it by
a trailing boolean out argument to preserve BC in a couple of places.

Most of the changes can be resumed to "numeric" strings which emitted a E_NOTICE now emit
a E_WARNING and "numeric" strings which emitted a E_WARNING now throw a TypeError.

This mostly affects:
 - String offsets
 - Arithmetic operations
 - Bitwise operations

Closes GH-5762
2020-07-29 02:51:09 +01:00

32 lines
408 B
PHP

--TEST--
shifting strings left
--FILE--
<?php
$s = "123";
$s1 = "test";
$s2 = "45345some";
$s <<= 2;
var_dump($s);
try {
$s1 <<= 1;
var_dump($s1);
} catch (\TypeError $e) {
echo $e->getMessage() . \PHP_EOL;
}
$s2 <<= 3;
var_dump($s2);
echo "Done\n";
?>
--EXPECTF--
int(492)
Unsupported operand types: string << int
Warning: A non-numeric value encountered in %s on line %d
int(362760)
Done