php-src/Zend/tests/empty_str_offset.phpt
Ayesh Karunaratne b8e380ab09 Update deprecation message for incompatible float to int conversion
Updates the deprecation message for implicit incompatible float to int conversion from:

```
Implicit conversion from non-compatible float %.*H to int in %s on line %d
```

to

```
Implicit conversion from float %.*H to int loses precision in %s on line %d
```

Related: #6661
2021-06-07 14:36:11 +02:00

136 lines
3.1 KiB
PHP

--TEST--
Testing empty() with string offsets
--FILE--
<?php
print "- empty ---\n";
$str = "test0123";
var_dump(empty($str[-1]));
var_dump(empty($str[-10]));
var_dump(empty($str[-4])); // 0
var_dump(empty($str[0]));
var_dump(empty($str[1]));
var_dump(empty($str[4])); // 0
var_dump(empty($str[5])); // 1
var_dump(empty($str[8]));
var_dump(empty($str[10000]));
// non-numeric offsets
print "- string literal ---\n";
var_dump(empty($str['-1'])); // 3
var_dump(empty($str['-10']));
var_dump(empty($str['0']));
var_dump(empty($str['1']));
var_dump(empty($str['4'])); // 0
var_dump(empty($str['1.5']));
var_dump(empty($str['good']));
var_dump(empty($str['3 and a half']));
print "- string variable ---\n";
var_dump(empty($str[$key = '-1'])); // 3
var_dump(empty($str[$key = '-10']));
var_dump(empty($str[$key = '0']));
var_dump(empty($str[$key = '1']));
var_dump(empty($str[$key = '4'])); // 0
var_dump(empty($str[$key = '1.5']));
var_dump(empty($str[$key = 'good']));
var_dump(empty($str[$key = '3 and a half']));
print "- bool ---\n";
var_dump(empty($str[true]));
var_dump(empty($str[false]));
var_dump(empty($str[false][true]));
print "- null ---\n";
var_dump(empty($str[null]));
print "- double ---\n";
var_dump(empty($str[-1.1]));
var_dump(empty($str[-10.5]));
var_dump(empty($str[-4.1]));
var_dump(empty($str[-0.8]));
var_dump(empty($str[-0.1]));
var_dump(empty($str[0.2]));
var_dump(empty($str[0.9]));
var_dump(empty($str[M_PI]));
var_dump(empty($str[100.5001]));
print "- array ---\n";
var_dump(empty($str[array()]));
var_dump(empty($str[array(1,2,3)]));
print "- object ---\n";
var_dump(empty($str[new stdClass()]));
print "- resource ---\n";
$f = fopen(__FILE__, 'r');
var_dump(empty($str[$f]));
print "done\n";
?>
--EXPECTF--
- empty ---
bool(false)
bool(true)
bool(true)
bool(false)
bool(false)
bool(true)
bool(false)
bool(true)
bool(true)
- string literal ---
bool(false)
bool(true)
bool(false)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
- string variable ---
bool(false)
bool(true)
bool(false)
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
- bool ---
bool(false)
bool(false)
bool(true)
- null ---
bool(false)
- double ---
Deprecated: Implicit conversion from float -1.1 to int loses precision in %s on line %d
bool(false)
Deprecated: Implicit conversion from float -10.5 to int loses precision in %s on line %d
bool(true)
Deprecated: Implicit conversion from float -4.1 to int loses precision in %s on line %d
bool(true)
Deprecated: Implicit conversion from float -0.8 to int loses precision in %s on line %d
bool(false)
Deprecated: Implicit conversion from float -0.1 to int loses precision in %s on line %d
bool(false)
Deprecated: Implicit conversion from float 0.2 to int loses precision in %s on line %d
bool(false)
Deprecated: Implicit conversion from float 0.9 to int loses precision in %s on line %d
bool(false)
Deprecated: Implicit conversion from float 3.141592653589793 to int loses precision in %s on line %d
bool(false)
Deprecated: Implicit conversion from float 100.5001 to int loses precision in %s on line %d
bool(true)
- array ---
bool(true)
bool(true)
- object ---
bool(true)
- resource ---
bool(true)
done