1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 16:22:37 +01:00
Files
archived-php-src/ext/standard/tests/array/array_unshift_variation4.phpt
Gina Peter Banyard 9a1b8a785d Fix GH-20194: null offset deprecation not emitted for writes (#20238)
Based on a patch from @ndossche
2025-10-29 18:36:10 +00:00

318 lines
5.0 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
--TEST--
Test array_unshift() function : usage variations - assoc. array with diff. keys for 'array' argument
--FILE--
<?php
/*
* Testing the functionality of array_unshift() by passing different
* associative arrays having different possible keys to $array argument.
* The $var argument passed is a fixed value
*/
echo "*** Testing array_unshift() : associative array with different keys ***\n";
//get a resource variable
$fp = fopen(__FILE__, "r");
//get a class
class classA
{
public function __toString(){
return "Class A object";
}
}
// get a heredoc string
$heredoc = <<<EOT
Hello world
EOT;
// initializing $var argument
$var = 10;
// different variations of associative arrays to be passed to $array argument
$arrays = array (
// empty array
/*1*/ array(),
// arrays with integer keys
array(0 => "0"),
array(1 => "1"),
array(1 => "1", 2 => "2", 3 => "3", 4 => "4"),
// arrays with string keys
/*7*/ array('\tHello' => 111, 're\td' => "color",
'\v\fworld' => 2.2, 'pen\n' => 33),
array("\tHello" => 111, "re\td" => "color",
"\v\fworld" => 2.2, "pen\n" => 33),
array("hello", $heredoc => "string"), // heredoc
// array with object, unset variable and resource variable
array($fp => 'resource'),
// array with mixed keys
/*11*/ array('hello' => 1, "fruit" => 2.2,
$fp => 'resource', 133 => "int",
$heredoc => "heredoc")
);
// loop through the various elements of $arrays to test array_unshift()
$iterator = 1;
foreach($arrays as $array) {
echo "-- Iteration $iterator --\n";
/* with default argument */
// returns element count in the resulting array after arguments are pushed to
// beginning of the given array
$temp_array = $array;
var_dump( array_unshift($temp_array, $var) );
// dump the resulting array
var_dump($temp_array);
/* with optional arguments */
// returns element count in the resulting array after arguments are pushed to
// beginning of the given array
$temp_array = $array;
var_dump( array_unshift($temp_array, $var, "hello", 'world') );
// dump the resulting array
var_dump($temp_array);
$iterator++;
}
echo "Done";
?>
--EXPECTF--
*** Testing array_unshift() : associative array with different keys ***
Warning: Resource ID#%d used as offset, casting to integer (%d) in %s on line %d
Warning: Resource ID#%d used as offset, casting to integer (%d) in %s on line %d
-- Iteration 1 --
int(1)
array(1) {
[0]=>
int(10)
}
int(3)
array(3) {
[0]=>
int(10)
[1]=>
string(5) "hello"
[2]=>
string(5) "world"
}
-- Iteration 2 --
int(2)
array(2) {
[0]=>
int(10)
[1]=>
string(1) "0"
}
int(4)
array(4) {
[0]=>
int(10)
[1]=>
string(5) "hello"
[2]=>
string(5) "world"
[3]=>
string(1) "0"
}
-- Iteration 3 --
int(2)
array(2) {
[0]=>
int(10)
[1]=>
string(1) "1"
}
int(4)
array(4) {
[0]=>
int(10)
[1]=>
string(5) "hello"
[2]=>
string(5) "world"
[3]=>
string(1) "1"
}
-- Iteration 4 --
int(5)
array(5) {
[0]=>
int(10)
[1]=>
string(1) "1"
[2]=>
string(1) "2"
[3]=>
string(1) "3"
[4]=>
string(1) "4"
}
int(7)
array(7) {
[0]=>
int(10)
[1]=>
string(5) "hello"
[2]=>
string(5) "world"
[3]=>
string(1) "1"
[4]=>
string(1) "2"
[5]=>
string(1) "3"
[6]=>
string(1) "4"
}
-- Iteration 5 --
int(5)
array(5) {
[0]=>
int(10)
["\tHello"]=>
int(111)
["re\td"]=>
string(5) "color"
["\v\fworld"]=>
float(2.2)
["pen\n"]=>
int(33)
}
int(7)
array(7) {
[0]=>
int(10)
[1]=>
string(5) "hello"
[2]=>
string(5) "world"
["\tHello"]=>
int(111)
["re\td"]=>
string(5) "color"
["\v\fworld"]=>
float(2.2)
["pen\n"]=>
int(33)
}
-- Iteration 6 --
int(5)
array(5) {
[0]=>
int(10)
[" Hello"]=>
int(111)
["re d"]=>
string(5) "color"
[" world"]=>
float(2.2)
["pen
"]=>
int(33)
}
int(7)
array(7) {
[0]=>
int(10)
[1]=>
string(5) "hello"
[2]=>
string(5) "world"
[" Hello"]=>
int(111)
["re d"]=>
string(5) "color"
[" world"]=>
float(2.2)
["pen
"]=>
int(33)
}
-- Iteration 7 --
int(3)
array(3) {
[0]=>
int(10)
[1]=>
string(5) "hello"
["Hello world"]=>
string(6) "string"
}
int(5)
array(5) {
[0]=>
int(10)
[1]=>
string(5) "hello"
[2]=>
string(5) "world"
[3]=>
string(5) "hello"
["Hello world"]=>
string(6) "string"
}
-- Iteration 8 --
int(2)
array(2) {
[0]=>
int(10)
[1]=>
string(8) "resource"
}
int(4)
array(4) {
[0]=>
int(10)
[1]=>
string(5) "hello"
[2]=>
string(5) "world"
[3]=>
string(8) "resource"
}
-- Iteration 9 --
int(6)
array(6) {
[0]=>
int(10)
["hello"]=>
int(1)
["fruit"]=>
float(2.2)
[1]=>
string(8) "resource"
[2]=>
string(3) "int"
["Hello world"]=>
string(7) "heredoc"
}
int(8)
array(8) {
[0]=>
int(10)
[1]=>
string(5) "hello"
[2]=>
string(5) "world"
["hello"]=>
int(1)
["fruit"]=>
float(2.2)
[3]=>
string(8) "resource"
[4]=>
string(3) "int"
["Hello world"]=>
string(7) "heredoc"
}
Done