我们可以将所有动态值复制到数组中,例如: 我有这样的功能
<?php
$list_a = array(); //defining an array
$list_b = array();
$list_c = array();
addText($a,$b,$c)
{
$list_a[] = $a;
$list_b[] = $b;
$list_c[] = $c;
}
我将不同的值传递给addText()函数,之后我必须使用 另一个函数 中的 foreach 来访问这些插入的值。< / p>
我们怎么能这样做。
答案 0 :(得分:3)
只需将您的php变量定义为全局。
System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
当您在任何函数中使用该变量时,首先在该函数中声明上述变量。 例如:
HRESULT
答案 1 :(得分:2)
要实现这一目标,您必须使用全局变量的概念
试试这个:
$list_a = array(); //defining an array
$list_b = array();
$list_c = array();
function addText($a,$b,$c)
{
global $list_a, $list_b, $list_c;
array_push($list_a,$a);
array_push($list_b,$b);
array_push($list_c,$c);
}
addText('12','23',12);
echo '<pre>';
print_r($list_a);
print_r($list_b);
print_r($list_c);
答案 2 :(得分:0)
这样可行,但设计不好。请参阅here why。
<?php
$list_a = array(); //defining an array
$list_b = array();
$list_c = array();
function addText($a,$b,$c)
{
global $list_a, $list_b, $list_c;
$list_a[] = $a;
$list_b[] = $b;
$list_c[] = $c;
}
function foreachThem()
{
global $list_a, $list_b, $list_c;
foreach($list_a as $item)
{
//...
}
foreach($list_b as $item)
{
//...
}
foreach($list_c as $item)
{
//...
}
}
更好的方法是将它们保存在父数组中(这是可选的,但它减少了参数的数量,因此减少了代码量)并将其作为参考传递。有关通过引用传递的信息,请参阅here。
<?php
$theLists = array(
"a" => array(),
"b" => array(),
"c" => array()
);
// note the '&'
function addText(&$lists, $a,$b,$c)
{
$lists["a"][] = $a;
$lists["b"][] = $b;
$lists["c"][] = $c;
}
// '&' is not needed here
function foreachThem($lists)
{
foreach($lists["a"] as $item)
{
//...
}
foreach($lists["b"] as $item)
{
//...
}
foreach($lists["c"] as $item)
{
//...
}
}
答案 3 :(得分:0)
试试这个,
<?php
$list_a = array(); //defining an array
$list_b = array();
$list_c = array();
addText($a,$b,$c)
{
$list_a[] = $a;
$list_b[] = $b;
$list_c[] = $c;
}
public function 'function_name'($list_a, $list_b, $list_c) {
foreach ($list_a as $list) {
echo $list;
}
}