函数fun()
正在计算名为$short
的变量中的一系列值。
我希望能够访问先前执行fun()
函数时计算的值(将所有结果保存在一个数组中)。
如何在数组$short
中保存$arrB
变量的每个值,以便在函数返回后可以访问它?
<?php
$arrA=array('a','b','c','d','e');
$arrB=array();// ### ? ###
function fun($param)
{
for($i=0;$i<3;$i++)
{
$short='['.$param.$i.']';
echo$short;
array_push($arrB,$short);// ### ? ###
}
}
foreach($arrA as $var)
{
fun($var);
}
print_r($arrB);// ### ? ###
?>
答案 0 :(得分:1)
$arrB
内部您的函数不存在。你可以声明这个变量'global',即:声明它存在外部你的函数 - 这样你的函数就可以修改它。
function fun($param) {
global $arrB;
for(...){
.....
}
}
或者,您可以将$arrB
传递给您的函数引用,这将对修改原始变量的函数产生类似的影响。
function fun($param, &$arrB){
.....
}
答案 1 :(得分:1)
您可以使用静态变量:
php > function foo ($x) {
static $arr = array();
$arr[] = $x;
var_dump($arr);
}
php > foo(1);
array(1) {
[0]=>
int(1)
}
php > foo('hi mom!');
array(2) {
[0]=>
int(1)
[1]=>
string(7) "hi mom!"
}
这允许“staticked”变量在其包含函数返回后保持活动状态。如果没有static
关键字,$arr
将在每次调用函数时初始化,并且数组只会包含一个内容。
如果需要函数外部可用的变量,则使用此static
方法,然后返回新数组。或者只使用全局变量。
答案 2 :(得分:0)