mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
RFC: https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_passing_string_which_are_not_one_byte_long_to_ord Co-authored-by: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
81 lines
2.8 KiB
PHP
81 lines
2.8 KiB
PHP
--TEST--
|
||
Test nullsafe property in special functions
|
||
--FILE--
|
||
<?php
|
||
|
||
function dump_error(callable $callable) {
|
||
try {
|
||
var_dump($callable());
|
||
} catch (Throwable $e) {
|
||
var_dump($e->getMessage());
|
||
}
|
||
}
|
||
|
||
function foo() {}
|
||
|
||
$foo = null;
|
||
dump_error(fn() => strlen($foo?->foo()));
|
||
dump_error(fn() => is_null($foo?->foo()));
|
||
dump_error(fn() => is_bool($foo?->foo()));
|
||
dump_error(fn() => is_int($foo?->foo()));
|
||
dump_error(fn() => is_scalar($foo?->foo()));
|
||
dump_error(fn() => boolval($foo?->foo()));
|
||
dump_error(fn() => defined($foo?->foo()));
|
||
dump_error(fn() => chr($foo?->foo()));
|
||
dump_error(fn() => ord($foo?->foo()));
|
||
dump_error(fn() => call_user_func_array($foo?->foo(), []));
|
||
dump_error(fn() => call_user_func_array('foo', $foo?->foo()));
|
||
dump_error(fn() => get_class($foo?->foo()));
|
||
dump_error(fn() => get_called_class($foo?->foo()));
|
||
dump_error(fn() => gettype($foo?->foo()));
|
||
dump_error(fn() => func_num_args($foo?->foo()));
|
||
dump_error(fn() => func_get_args($foo?->foo()));
|
||
dump_error(fn() => array_slice($foo?->foo(), 0));
|
||
dump_error(fn() => array_slice(['foo'], $foo?->foo()));
|
||
dump_error(fn() => array_slice(['foo'], 0, $foo?->foo()));
|
||
dump_error(fn() => array_key_exists($foo?->foo(), []));
|
||
dump_error(fn() => array_key_exists('foo', $foo?->foo()));
|
||
|
||
?>
|
||
--EXPECTF--
|
||
Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in %s on line %d
|
||
int(0)
|
||
bool(true)
|
||
bool(false)
|
||
bool(false)
|
||
bool(false)
|
||
bool(false)
|
||
|
||
Deprecated: defined(): Passing null to parameter #1 ($constant_name) of type string is deprecated in %s on line %d
|
||
bool(false)
|
||
|
||
Deprecated: chr(): Passing null to parameter #1 ($codepoint) of type int is deprecated in %s on line %d
|
||
string(1) " |