将动态值复制到php中的数组

时间:2015-06-08 10:51:14

标签: php arrays

我们可以将所有动态值复制到数组中,例如: 我有这样的功能

<?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>

我们怎么能这样做。

4 个答案:

答案 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;
  }
}