TypePHP 编译器
https://swoole.com/aot/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
844 lines
10 KiB
844 lines
10 KiB
--TEST--
|
|
Test array_splice() function : usage variations - lengths and offsets
|
|
--FILE--
|
|
<?php
|
|
function test_splice($offset, $length)
|
|
{
|
|
echo " - No replacement\n";
|
|
$input_array = array(0, 1, 2, 3, 4, 5);
|
|
var_dump(array_splice($input_array, $offset, $length));
|
|
var_dump($input_array);
|
|
echo " - With replacement\n";
|
|
$input_array = array(0, 1, 2, 3, 4, 5);
|
|
var_dump(array_splice($input_array, $offset, $length, array("A", "B", "C")));
|
|
var_dump($input_array);
|
|
}
|
|
function main()
|
|
{
|
|
/*
|
|
* Function is implemented in ext/standard/array.c
|
|
*/
|
|
echo "*** array_splice() function : usage variations - lengths and offsets\n";
|
|
echo "absolute offset - absolute length - cut from beginning\n";
|
|
test_splice(0, 2);
|
|
echo "absolute offset - absolute length - cut from middle\n";
|
|
test_splice(2, 2);
|
|
echo "absolute offset - absolute length - cut from end\n";
|
|
test_splice(4, 2);
|
|
echo "absolute offset - absolute length - attempt to cut past end\n";
|
|
test_splice(4, 4);
|
|
echo "absolute offset - absolute length - cut everything\n";
|
|
test_splice(0, 7);
|
|
echo "absolute offset - absolute length - cut nothing\n";
|
|
test_splice(3, 0);
|
|
echo "absolute offset - relative length - cut from beginning\n";
|
|
test_splice(0, -4);
|
|
echo "absolute offset - relative length - cut from middle\n";
|
|
test_splice(2, -2);
|
|
echo "absolute offset - relative length - attempt to cut form before beginning \n";
|
|
test_splice(0, -7);
|
|
echo "absolute offset - relative length - cut nothing\n";
|
|
test_splice(2, -7);
|
|
echo "relative offset - absolute length - cut from beginning\n";
|
|
test_splice(-6, 2);
|
|
echo "relative offset - absolute length - cut from middle\n";
|
|
test_splice(-4, 2);
|
|
echo "relative offset - absolute length - cut from end\n";
|
|
test_splice(-2, 2);
|
|
echo "relative offset - absolute length - attempt to cut past end\n";
|
|
test_splice(-2, 4);
|
|
echo "relative offset - absolute length - cut everything\n";
|
|
test_splice(-6, 6);
|
|
echo "relative offset - absolute length - cut nothing\n";
|
|
test_splice(-6, 0);
|
|
echo "relative offset - relative length - cut from beginning\n";
|
|
test_splice(-6, -4);
|
|
echo "relative offset - relative length - cut from middle\n";
|
|
test_splice(-4, -2);
|
|
echo "relative offset - relative length - cut nothing\n";
|
|
test_splice(-4, -7);
|
|
echo "Done\n";
|
|
}
|
|
?>
|
|
--EXPECT--
|
|
*** array_splice() function : usage variations - lengths and offsets
|
|
absolute offset - absolute length - cut from beginning
|
|
- No replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
}
|
|
array(4) {
|
|
[0]=>
|
|
int(2)
|
|
[1]=>
|
|
int(3)
|
|
[2]=>
|
|
int(4)
|
|
[3]=>
|
|
int(5)
|
|
}
|
|
- With replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
}
|
|
array(7) {
|
|
[0]=>
|
|
string(1) "A"
|
|
[1]=>
|
|
string(1) "B"
|
|
[2]=>
|
|
string(1) "C"
|
|
[3]=>
|
|
int(2)
|
|
[4]=>
|
|
int(3)
|
|
[5]=>
|
|
int(4)
|
|
[6]=>
|
|
int(5)
|
|
}
|
|
absolute offset - absolute length - cut from middle
|
|
- No replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(2)
|
|
[1]=>
|
|
int(3)
|
|
}
|
|
array(4) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(4)
|
|
[3]=>
|
|
int(5)
|
|
}
|
|
- With replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(2)
|
|
[1]=>
|
|
int(3)
|
|
}
|
|
array(7) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
string(1) "A"
|
|
[3]=>
|
|
string(1) "B"
|
|
[4]=>
|
|
string(1) "C"
|
|
[5]=>
|
|
int(4)
|
|
[6]=>
|
|
int(5)
|
|
}
|
|
absolute offset - absolute length - cut from end
|
|
- No replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(4)
|
|
[1]=>
|
|
int(5)
|
|
}
|
|
array(4) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(2)
|
|
[3]=>
|
|
int(3)
|
|
}
|
|
- With replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(4)
|
|
[1]=>
|
|
int(5)
|
|
}
|
|
array(7) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(2)
|
|
[3]=>
|
|
int(3)
|
|
[4]=>
|
|
string(1) "A"
|
|
[5]=>
|
|
string(1) "B"
|
|
[6]=>
|
|
string(1) "C"
|
|
}
|
|
absolute offset - absolute length - attempt to cut past end
|
|
- No replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(4)
|
|
[1]=>
|
|
int(5)
|
|
}
|
|
array(4) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(2)
|
|
[3]=>
|
|
int(3)
|
|
}
|
|
- With replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(4)
|
|
[1]=>
|
|
int(5)
|
|
}
|
|
array(7) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(2)
|
|
[3]=>
|
|
int(3)
|
|
[4]=>
|
|
string(1) "A"
|
|
[5]=>
|
|
string(1) "B"
|
|
[6]=>
|
|
string(1) "C"
|
|
}
|
|
absolute offset - absolute length - cut everything
|
|
- No replacement
|
|
array(6) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(2)
|
|
[3]=>
|
|
int(3)
|
|
[4]=>
|
|
int(4)
|
|
[5]=>
|
|
int(5)
|
|
}
|
|
array(0) {
|
|
}
|
|
- With replacement
|
|
array(6) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(2)
|
|
[3]=>
|
|
int(3)
|
|
[4]=>
|
|
int(4)
|
|
[5]=>
|
|
int(5)
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(1) "A"
|
|
[1]=>
|
|
string(1) "B"
|
|
[2]=>
|
|
string(1) "C"
|
|
}
|
|
absolute offset - absolute length - cut nothing
|
|
- No replacement
|
|
array(0) {
|
|
}
|
|
array(6) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(2)
|
|
[3]=>
|
|
int(3)
|
|
[4]=>
|
|
int(4)
|
|
[5]=>
|
|
int(5)
|
|
}
|
|
- With replacement
|
|
array(0) {
|
|
}
|
|
array(9) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(2)
|
|
[3]=>
|
|
string(1) "A"
|
|
[4]=>
|
|
string(1) "B"
|
|
[5]=>
|
|
string(1) "C"
|
|
[6]=>
|
|
int(3)
|
|
[7]=>
|
|
int(4)
|
|
[8]=>
|
|
int(5)
|
|
}
|
|
absolute offset - relative length - cut from beginning
|
|
- No replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
}
|
|
array(4) {
|
|
[0]=>
|
|
int(2)
|
|
[1]=>
|
|
int(3)
|
|
[2]=>
|
|
int(4)
|
|
[3]=>
|
|
int(5)
|
|
}
|
|
- With replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
}
|
|
array(7) {
|
|
[0]=>
|
|
string(1) "A"
|
|
[1]=>
|
|
string(1) "B"
|
|
[2]=>
|
|
string(1) "C"
|
|
[3]=>
|
|
int(2)
|
|
[4]=>
|
|
int(3)
|
|
[5]=>
|
|
int(4)
|
|
[6]=>
|
|
int(5)
|
|
}
|
|
absolute offset - relative length - cut from middle
|
|
- No replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(2)
|
|
[1]=>
|
|
int(3)
|
|
}
|
|
array(4) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(4)
|
|
[3]=>
|
|
int(5)
|
|
}
|
|
- With replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(2)
|
|
[1]=>
|
|
int(3)
|
|
}
|
|
array(7) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
string(1) "A"
|
|
[3]=>
|
|
string(1) "B"
|
|
[4]=>
|
|
string(1) "C"
|
|
[5]=>
|
|
int(4)
|
|
[6]=>
|
|
int(5)
|
|
}
|
|
absolute offset - relative length - attempt to cut form before beginning
|
|
- No replacement
|
|
array(0) {
|
|
}
|
|
array(6) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(2)
|
|
[3]=>
|
|
int(3)
|
|
[4]=>
|
|
int(4)
|
|
[5]=>
|
|
int(5)
|
|
}
|
|
- With replacement
|
|
array(0) {
|
|
}
|
|
array(9) {
|
|
[0]=>
|
|
string(1) "A"
|
|
[1]=>
|
|
string(1) "B"
|
|
[2]=>
|
|
string(1) "C"
|
|
[3]=>
|
|
int(0)
|
|
[4]=>
|
|
int(1)
|
|
[5]=>
|
|
int(2)
|
|
[6]=>
|
|
int(3)
|
|
[7]=>
|
|
int(4)
|
|
[8]=>
|
|
int(5)
|
|
}
|
|
absolute offset - relative length - cut nothing
|
|
- No replacement
|
|
array(0) {
|
|
}
|
|
array(6) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(2)
|
|
[3]=>
|
|
int(3)
|
|
[4]=>
|
|
int(4)
|
|
[5]=>
|
|
int(5)
|
|
}
|
|
- With replacement
|
|
array(0) {
|
|
}
|
|
array(9) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
string(1) "A"
|
|
[3]=>
|
|
string(1) "B"
|
|
[4]=>
|
|
string(1) "C"
|
|
[5]=>
|
|
int(2)
|
|
[6]=>
|
|
int(3)
|
|
[7]=>
|
|
int(4)
|
|
[8]=>
|
|
int(5)
|
|
}
|
|
relative offset - absolute length - cut from beginning
|
|
- No replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
}
|
|
array(4) {
|
|
[0]=>
|
|
int(2)
|
|
[1]=>
|
|
int(3)
|
|
[2]=>
|
|
int(4)
|
|
[3]=>
|
|
int(5)
|
|
}
|
|
- With replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
}
|
|
array(7) {
|
|
[0]=>
|
|
string(1) "A"
|
|
[1]=>
|
|
string(1) "B"
|
|
[2]=>
|
|
string(1) "C"
|
|
[3]=>
|
|
int(2)
|
|
[4]=>
|
|
int(3)
|
|
[5]=>
|
|
int(4)
|
|
[6]=>
|
|
int(5)
|
|
}
|
|
relative offset - absolute length - cut from middle
|
|
- No replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(2)
|
|
[1]=>
|
|
int(3)
|
|
}
|
|
array(4) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(4)
|
|
[3]=>
|
|
int(5)
|
|
}
|
|
- With replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(2)
|
|
[1]=>
|
|
int(3)
|
|
}
|
|
array(7) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
string(1) "A"
|
|
[3]=>
|
|
string(1) "B"
|
|
[4]=>
|
|
string(1) "C"
|
|
[5]=>
|
|
int(4)
|
|
[6]=>
|
|
int(5)
|
|
}
|
|
relative offset - absolute length - cut from end
|
|
- No replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(4)
|
|
[1]=>
|
|
int(5)
|
|
}
|
|
array(4) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(2)
|
|
[3]=>
|
|
int(3)
|
|
}
|
|
- With replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(4)
|
|
[1]=>
|
|
int(5)
|
|
}
|
|
array(7) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(2)
|
|
[3]=>
|
|
int(3)
|
|
[4]=>
|
|
string(1) "A"
|
|
[5]=>
|
|
string(1) "B"
|
|
[6]=>
|
|
string(1) "C"
|
|
}
|
|
relative offset - absolute length - attempt to cut past end
|
|
- No replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(4)
|
|
[1]=>
|
|
int(5)
|
|
}
|
|
array(4) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(2)
|
|
[3]=>
|
|
int(3)
|
|
}
|
|
- With replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(4)
|
|
[1]=>
|
|
int(5)
|
|
}
|
|
array(7) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(2)
|
|
[3]=>
|
|
int(3)
|
|
[4]=>
|
|
string(1) "A"
|
|
[5]=>
|
|
string(1) "B"
|
|
[6]=>
|
|
string(1) "C"
|
|
}
|
|
relative offset - absolute length - cut everything
|
|
- No replacement
|
|
array(6) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(2)
|
|
[3]=>
|
|
int(3)
|
|
[4]=>
|
|
int(4)
|
|
[5]=>
|
|
int(5)
|
|
}
|
|
array(0) {
|
|
}
|
|
- With replacement
|
|
array(6) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(2)
|
|
[3]=>
|
|
int(3)
|
|
[4]=>
|
|
int(4)
|
|
[5]=>
|
|
int(5)
|
|
}
|
|
array(3) {
|
|
[0]=>
|
|
string(1) "A"
|
|
[1]=>
|
|
string(1) "B"
|
|
[2]=>
|
|
string(1) "C"
|
|
}
|
|
relative offset - absolute length - cut nothing
|
|
- No replacement
|
|
array(0) {
|
|
}
|
|
array(6) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(2)
|
|
[3]=>
|
|
int(3)
|
|
[4]=>
|
|
int(4)
|
|
[5]=>
|
|
int(5)
|
|
}
|
|
- With replacement
|
|
array(0) {
|
|
}
|
|
array(9) {
|
|
[0]=>
|
|
string(1) "A"
|
|
[1]=>
|
|
string(1) "B"
|
|
[2]=>
|
|
string(1) "C"
|
|
[3]=>
|
|
int(0)
|
|
[4]=>
|
|
int(1)
|
|
[5]=>
|
|
int(2)
|
|
[6]=>
|
|
int(3)
|
|
[7]=>
|
|
int(4)
|
|
[8]=>
|
|
int(5)
|
|
}
|
|
relative offset - relative length - cut from beginning
|
|
- No replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
}
|
|
array(4) {
|
|
[0]=>
|
|
int(2)
|
|
[1]=>
|
|
int(3)
|
|
[2]=>
|
|
int(4)
|
|
[3]=>
|
|
int(5)
|
|
}
|
|
- With replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
}
|
|
array(7) {
|
|
[0]=>
|
|
string(1) "A"
|
|
[1]=>
|
|
string(1) "B"
|
|
[2]=>
|
|
string(1) "C"
|
|
[3]=>
|
|
int(2)
|
|
[4]=>
|
|
int(3)
|
|
[5]=>
|
|
int(4)
|
|
[6]=>
|
|
int(5)
|
|
}
|
|
relative offset - relative length - cut from middle
|
|
- No replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(2)
|
|
[1]=>
|
|
int(3)
|
|
}
|
|
array(4) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(4)
|
|
[3]=>
|
|
int(5)
|
|
}
|
|
- With replacement
|
|
array(2) {
|
|
[0]=>
|
|
int(2)
|
|
[1]=>
|
|
int(3)
|
|
}
|
|
array(7) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
string(1) "A"
|
|
[3]=>
|
|
string(1) "B"
|
|
[4]=>
|
|
string(1) "C"
|
|
[5]=>
|
|
int(4)
|
|
[6]=>
|
|
int(5)
|
|
}
|
|
relative offset - relative length - cut nothing
|
|
- No replacement
|
|
array(0) {
|
|
}
|
|
array(6) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
int(2)
|
|
[3]=>
|
|
int(3)
|
|
[4]=>
|
|
int(4)
|
|
[5]=>
|
|
int(5)
|
|
}
|
|
- With replacement
|
|
array(0) {
|
|
}
|
|
array(9) {
|
|
[0]=>
|
|
int(0)
|
|
[1]=>
|
|
int(1)
|
|
[2]=>
|
|
string(1) "A"
|
|
[3]=>
|
|
string(1) "B"
|
|
[4]=>
|
|
string(1) "C"
|
|
[5]=>
|
|
int(2)
|
|
[6]=>
|
|
int(3)
|
|
[7]=>
|
|
int(4)
|
|
[8]=>
|
|
int(5)
|
|
}
|
|
Done
|
|
|