0x01 源码
0x02 Payload
0x03 PHP函数
1. array
新建一个数组
array ([ mixed $... ] ) : array
参数
语法“index => values”,用逗号分开,定义了索引和值。索引可以是字符串或数字。如果省略了索引,会自动产生从 0 开始的整数索引。如果索引是整数,则下一个产生的索引将是目前最大的整数索引 + 1。注意如果定义了两个完全一样的索引,则后面一个会覆盖前一个。
在最后一个定义的数组项目之后加一个逗号虽然不常见,却是合法的语法。
返回值
范例
$array = array(1, 1, 1, 1, 1, 8 => 1, 6 => 1, 19, 3 => 13);
var_dump($array);
注意索引 3 被定义了两次,保留了最后的值 13。索引 6 在 索引 8 之后定义,下一个自动生成的索引(值为 19 那个)为 9,因为最大的索引是 8
array (size=8)
0 => int 1
1 => int 1
2 => int 1
3 => int 13
4 => int 1
8 => int 1
6 => int 1
9 => int 19
2.array_push
将一个或多个单元压入数组的末尾(入栈)
array_push ( array &$array , mixed $value1 [, mixed $... ] ) : int
array_push() 将 array 当成一个栈,并将传入的变量压入 array 的末尾。array 的长度将根据入栈变量的数目增加。和如下效果相同:
<?php
$array[] = $var;
并对每个传入的值重复以上动作。
Note: 如果用 array_push() 来给数组增加一个单元,还不如用 $array[] = ,因为这样没有调用函数的额外负担。
Note: 如果第一个参数不是数组,array_push() 将发出一条警告。这和 $var[] 的行为不同,后者会新建一个数组。
参数
array
输入的数组。
value1
要压入 array 末尾的第一个值。
返回值
范例
<?php
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
?>
以上例程会输出:
Array
(
[0] => orange
[1] => banana
[2] => apple
[3] => raspberry
)