0x01 源码

0x02 Payload

0x03 PHP函数

1. array

新建一个数组

  1. array ([ mixed $... ] ) : array

创建一个数组

参数

语法“index => values”,用逗号分开,定义了索引和值。索引可以是字符串或数字。如果省略了索引,会自动产生从 0 开始的整数索引。如果索引是整数,则下一个产生的索引将是目前最大的整数索引 + 1。注意如果定义了两个完全一样的索引,则后面一个会覆盖前一个。
在最后一个定义的数组项目之后加一个逗号虽然不常见,却是合法的语法。

返回值

返回根据参数建立的数组。参数可以用 => 运算符给出索引

范例

  1. $array = array(1, 1, 1, 1, 1, 8 => 1, 6 => 1, 19, 3 => 13);
  2. var_dump($array);

注意索引 3 被定义了两次,保留了最后的值 13。索引 6 在 索引 8 之后定义,下一个自动生成的索引(值为 19 那个)为 9,因为最大的索引是 8

  1. array (size=8)
  2. 0 => int 1
  3. 1 => int 1
  4. 2 => int 1
  5. 3 => int 13
  6. 4 => int 1
  7. 8 => int 1
  8. 6 => int 1
  9. 9 => int 19

2.array_push

将一个或多个单元压入数组的末尾(入栈)

  1. array_push ( array &$array , mixed $value1 [, mixed $... ] ) : int

array_push() 将 array 当成一个栈,并将传入的变量压入 array 的末尾。array 的长度将根据入栈变量的数目增加。和如下效果相同:

  1. <?php
  2. $array[] = $var;

并对每个传入的值重复以上动作。
Note: 如果用 array_push() 来给数组增加一个单元,还不如用 $array[] = ,因为这样没有调用函数的额外负担。
Note: 如果第一个参数不是数组,array_push() 将发出一条警告。这和 $var[] 的行为不同,后者会新建一个数组。

参数

array
输入的数组。
value1
要压入 array 末尾的第一个值。

返回值

返回处理之后数组的元素个数。

范例

  1. <?php
  2. $stack = array("orange", "banana");
  3. array_push($stack, "apple", "raspberry");
  4. print_r($stack);
  5. ?>

以上例程会输出:

  1. Array
  2. (
  3. [0] => orange
  4. [1] => banana
  5. [2] => apple
  6. [3] => raspberry
  7. )