1
0
mirror of https://github.com/php/php-src.git synced 2026-03-25 16:52:18 +01:00
Files
archived-php-src/ext/standard/tests/strings/str_replace_variation1.phpt
Nikita Popov b10416a652 Deprecate passing null to non-nullable arg of internal function
This deprecates passing null to non-nullable scale arguments of
internal functions, with the eventual goal of making the behavior
consistent with userland functions, where null is never accepted
for non-nullable arguments.

This change is expected to cause quite a lot of fallout. In most
cases, calling code should be adjusted to avoid passing null. In
some cases, PHP should be adjusted to make some function arguments
nullable. I have already fixed a number of functions before landing
this, but feel free to file a bug if you encounter a function that
doesn't accept null, but probably should. (The rule of thumb for
this to be applicable is that the function must have special behavior
for 0 or "", which is distinct from the natural behavior of the
parameter.)

RFC: https://wiki.php.net/rfc/deprecate_null_to_scalar_internal_arg

Closes GH-6475.
2021-02-11 21:46:13 +01:00

397 lines
5.4 KiB
PHP

--TEST--
Test str_replace() function - test search values
--INI--
precision=14
--FILE--
<?php
echo "\n*** Testing str_replace() with various search values ***";
$search_arr = array( TRUE, FALSE, 1, 0, -1, "1", "0", "-1", NULL,
array(), "php", "");
$i = 0;
/* loop through to replace the matched elements in the array */
foreach( $search_arr as $value ) {
echo "\n-- Iteration $i --\n";
/* replace the string in array */
var_dump( str_replace($value, "FOUND", $search_arr, $count) );
var_dump( $count );
$i++;
}
?>
--EXPECTF--
*** Testing str_replace() with various search values ***
-- Iteration 0 --
Warning: Array to string conversion in %s on line %d
array(12) {
[0]=>
string(5) "FOUND"
[1]=>
string(0) ""
[2]=>
string(5) "FOUND"
[3]=>
string(1) "0"
[4]=>
string(6) "-FOUND"
[5]=>
string(5) "FOUND"
[6]=>
string(1) "0"
[7]=>
string(6) "-FOUND"
[8]=>
string(0) ""
[9]=>
string(5) "Array"
[10]=>
string(3) "php"
[11]=>
string(0) ""
}
int(5)
-- Iteration 1 --
Warning: Array to string conversion in %s on line %d
array(12) {
[0]=>
string(1) "1"
[1]=>
string(0) ""
[2]=>
string(1) "1"
[3]=>
string(1) "0"
[4]=>
string(2) "-1"
[5]=>
string(1) "1"
[6]=>
string(1) "0"
[7]=>
string(2) "-1"
[8]=>
string(0) ""
[9]=>
string(5) "Array"
[10]=>
string(3) "php"
[11]=>
string(0) ""
}
int(0)
-- Iteration 2 --
Warning: Array to string conversion in %s on line %d
array(12) {
[0]=>
string(5) "FOUND"
[1]=>
string(0) ""
[2]=>
string(5) "FOUND"
[3]=>
string(1) "0"
[4]=>
string(6) "-FOUND"
[5]=>
string(5) "FOUND"
[6]=>
string(1) "0"
[7]=>
string(6) "-FOUND"
[8]=>
string(0) ""
[9]=>
string(5) "Array"
[10]=>
string(3) "php"
[11]=>
string(0) ""
}
int(5)
-- Iteration 3 --
Warning: Array to string conversion in %s on line %d
array(12) {
[0]=>
string(1) "1"
[1]=>
string(0) ""
[2]=>
string(1) "1"
[3]=>
string(5) "FOUND"
[4]=>
string(2) "-1"
[5]=>
string(1) "1"
[6]=>
string(5) "FOUND"
[7]=>
string(2) "-1"
[8]=>
string(0) ""
[9]=>
string(5) "Array"
[10]=>
string(3) "php"
[11]=>
string(0) ""
}
int(2)
-- Iteration 4 --
Warning: Array to string conversion in %s on line %d
array(12) {
[0]=>
string(1) "1"
[1]=>
string(0) ""
[2]=>
string(1) "1"
[3]=>
string(1) "0"
[4]=>
string(5) "FOUND"
[5]=>
string(1) "1"
[6]=>
string(1) "0"
[7]=>
string(5) "FOUND"
[8]=>
string(0) ""
[9]=>
string(5) "Array"
[10]=>
string(3) "php"
[11]=>
string(0) ""
}
int(2)
-- Iteration 5 --
Warning: Array to string conversion in %s on line %d
array(12) {
[0]=>
string(5) "FOUND"
[1]=>
string(0) ""
[2]=>
string(5) "FOUND"
[3]=>
string(1) "0"
[4]=>
string(6) "-FOUND"
[5]=>
string(5) "FOUND"
[6]=>
string(1) "0"
[7]=>
string(6) "-FOUND"
[8]=>
string(0) ""
[9]=>
string(5) "Array"
[10]=>
string(3) "php"
[11]=>
string(0) ""
}
int(5)
-- Iteration 6 --
Warning: Array to string conversion in %s on line %d
array(12) {
[0]=>
string(1) "1"
[1]=>
string(0) ""
[2]=>
string(1) "1"
[3]=>
string(5) "FOUND"
[4]=>
string(2) "-1"
[5]=>
string(1) "1"
[6]=>
string(5) "FOUND"
[7]=>
string(2) "-1"
[8]=>
string(0) ""
[9]=>
string(5) "Array"
[10]=>
string(3) "php"
[11]=>
string(0) ""
}
int(2)
-- Iteration 7 --
Warning: Array to string conversion in %s on line %d
array(12) {
[0]=>
string(1) "1"
[1]=>
string(0) ""
[2]=>
string(1) "1"
[3]=>
string(1) "0"
[4]=>
string(5) "FOUND"
[5]=>
string(1) "1"
[6]=>
string(1) "0"
[7]=>
string(5) "FOUND"
[8]=>
string(0) ""
[9]=>
string(5) "Array"
[10]=>
string(3) "php"
[11]=>
string(0) ""
}
int(2)
-- Iteration 8 --
Deprecated: str_replace(): Passing null to parameter #1 ($search) of type array|string is deprecated in %s on line %d
Warning: Array to string conversion in %s on line %d
array(12) {
[0]=>
string(1) "1"
[1]=>
string(0) ""
[2]=>
string(1) "1"
[3]=>
string(1) "0"
[4]=>
string(2) "-1"
[5]=>
string(1) "1"
[6]=>
string(1) "0"
[7]=>
string(2) "-1"
[8]=>
string(0) ""
[9]=>
string(5) "Array"
[10]=>
string(3) "php"
[11]=>
string(0) ""
}
int(0)
-- Iteration 9 --
Warning: Array to string conversion in %s on line %d
array(12) {
[0]=>
string(1) "1"
[1]=>
string(0) ""
[2]=>
string(1) "1"
[3]=>
string(1) "0"
[4]=>
string(2) "-1"
[5]=>
string(1) "1"
[6]=>
string(1) "0"
[7]=>
string(2) "-1"
[8]=>
string(0) ""
[9]=>
string(5) "Array"
[10]=>
string(3) "php"
[11]=>
string(0) ""
}
int(0)
-- Iteration 10 --
Warning: Array to string conversion in %s on line %d
array(12) {
[0]=>
string(1) "1"
[1]=>
string(0) ""
[2]=>
string(1) "1"
[3]=>
string(1) "0"
[4]=>
string(2) "-1"
[5]=>
string(1) "1"
[6]=>
string(1) "0"
[7]=>
string(2) "-1"
[8]=>
string(0) ""
[9]=>
string(5) "Array"
[10]=>
string(5) "FOUND"
[11]=>
string(0) ""
}
int(1)
-- Iteration 11 --
Warning: Array to string conversion in %s on line %d
array(12) {
[0]=>
string(1) "1"
[1]=>
string(0) ""
[2]=>
string(1) "1"
[3]=>
string(1) "0"
[4]=>
string(2) "-1"
[5]=>
string(1) "1"
[6]=>
string(1) "0"
[7]=>
string(2) "-1"
[8]=>
string(0) ""
[9]=>
string(5) "Array"
[10]=>
string(3) "php"
[11]=>
string(0) ""
}
int(0)