n个$varname并将$varname当做下标$varname的值当做值创建一个数组$varname可以为数组
解释不清楚, 看例子
复制代码 - PHP100.com<?php
$a = "变量a";
$b = "变量b";
$arr = compact(''a'', ''b''); //这里传入 a b 分别为上面定义的变量名称
print_r($arr); //打印结果为 array(''a'' => ''变量a'', ''b'' => ''变量b'');
//还可以把变量名称当做数组传入
$vars = array(''a'', ''b'');
$arr = compact($vars);
print_r($arr); //结果和上面一样, 其实这个函数就是做extract的相反操作
?>
extract($arr, $type, $prefix) int
将数组$arr的下标当做变量名, 值当做变量的值
$arr 目标数组
$type 这个是遇过遇到相同下标使用什么方式处理, 值是PHP已经定义了的常量
EXTR_OVERWRITE 如果相同, 那么就覆盖前面的那个变量, 默认就是这个
EXTR_SKIP 如果相同, 不覆盖前面那个变量
EXTR_PREFIX_SAME 如果相同, 那么使用第三个参数$prefix加到变量名前
EXTR_PREFIX_ALL 把所有变量名称都加上$prefix当做前缀
注意在$type为EXTR_PREFIX_SAME或EXTR_PREFIX_ALL时才需要传入参数$prefix, 不然传了也没用。。。
例子
复制代码 - PHP100.com<?php
$arr = array(''a'' => ''变量a'', ''b'' => ''变量b'');
extract($arr, EXTR_OVERWRITE); //如果有相同,那么覆盖
echo $a; //输出结果将是 ''变量a''
echo $b; //结果: ''变量b''
$arr = array(''a'' => ''变量a'', ''b'' => ''变量b'', ''a'' => ''第二个变量a''); //这里有两个元素下标都为a
extract($arr);
echo $a; //输出结果是: ''第二个变量a'' 很明显已经覆盖了 ''变量a'' 因为默认第二个参数是 EXTR_OVERWRITE
?>
count($arr) int
统计数组中的元素的数目
复制代码 - PHP100.com<?php
$arr = array(''a'', ''b'');
echo count($arr); //很明显结果为2
?>
current($arr) mixed
返回数组中当前指针所指的元素,此函数别名 pos
复制代码 - PHP100.com<?php
$arr = array(''a'', ''b'', ''c'');
echo current($arr); //结果为 ''a''
echo next($arr); //指针向下一个移动,所以现在指针所指的是b 输出结果当然为 ''b''
echo current($arr); //结果又是b 因为当前指针就在b这哦
echo end($arr) //指针移动到数组最后, 并返回结果, 所以结果为c
echo prev($arr); //指针向上一个移动, 结果b
echo key($arr); //返回指针所指元素的下标 因为上面指针到了b那么所有 结果为1 因为b的下标就是1
echo reset($arr); //重置指针都数 |