在PHP函数中使用全局数组

在PHP函数中使用全局数组,php,arrays,Php,Arrays,我在代码的开头声明了一个数组 $animal = array ( "Dog", "Cat"); 现在我希望能够在方法中使用这些值。我想远离可用的全局解决方案,我想知道是否有办法通过再次创建阵列来实现这一点 e、 g创建一个新数组 $animal_store=array() 然后在原始数组中循环并将值附加到新数组中。这可能吗 class Test { public static $animal = array("cat", "dog"); } 现在您可以在所有方

我在代码的开头声明了一个数组

    $animal = array (
    "Dog",
    "Cat");
现在我希望能够在方法中使用这些值。我想远离可用的全局解决方案,我想知道是否有办法通过再次创建阵列来实现这一点

e、 g创建一个新数组

$animal_store=array()

然后在原始数组中循环并将值附加到新数组中。这可能吗

class Test {
    public static $animal = array("cat", "dog");
}
现在您可以在所有方法中使用此静态成员了

是的,这是可能的

$animal = array (
    "Dog",
    "Cat"
);
function addNew(){
    global $animal;
    // just by adding this you can access the array
}
因此,如果您不想使用global,那么尝试将数组写入另一个文件,比如
config.php
。然后将其包含在函数中并返回数组

config.php

$animal = array (
    "Dog",
    "Cat"
);
您的当前页面

function getArray(){
    require('config.php');
    if(is_array($animal))
        return $animal;
    else
        return false;
}
然后在你想要的函数中调用它

function doJob(){
    echo "<pre>";
    $animal = getArray();
    var_dump($animal);
}
函数doJob(){
回声“;
$animal=getArray();
瓦鲁垃圾场(动物);
}

这些例子有帮助吗

$array = ['Dog', 'Cat', 'Giraffe']; // Our animals array

function animalsInOurZoo($animals) // Our function takes one argument
{
  foreach ($animals as $animal) // Loop through our array
    echo $animal . '\n'; // Print out each item.
}

animalsInOurZoo($array); // We pass our animals into our function
不管怎样,我们都可以

$iloveanmals->getAnimals()

$capitalpigsrus->getAnimals()


那么看看下面的例子

现在;您希望将一个数组传递到函数中,而不是打印每个项目,而是将项目推送到另一个数组中


我建议您的函数返回一个数组,并为返回的函数指定一个变量。

$animal\u store=$animal?!@Rizier123所说的或将数组放入会话中。只需将数组作为参数传入即可!是的,这就是我认为应该做的!但是,当我在foreach循环中使用新数组时,我不断遇到以下错误。当我尝试使用原始数组时,也会出现错误。当我在方法中声明数组时,它工作正常(但我希望在代码顶部的方法之外声明数组,以便希望在代码中编辑数组的任何人都不必编辑任何方法)-PHP解析错误:语法错误,意外的T_FOREACH,应该是T_变量或“$”我真的需要创建一个新文件来解决这个问题吗?我不能创建一个方法来搜索原始数组,然后将其中的值添加到方法中声明的新数组中吗?通过创建一个新文件并将其包含在函数中,可以将该文件中包含的所有内容都添加到函数中。如果你不需要这个,那么传递数组将是次好的选择。我喜欢这个,但它仍然需要直接调用原始的arrayOkay,我想你可以合并你的数组吗?你在文章中写道,你想在一个方法中使用数组,你有一个类,还是你实际上是指函数?所有东西都包含在一个类中。该数组被声明为我将在全球范围内考虑的内容,然而,我仍然不确定PHP如何对它进行交互,并且存在一个函数,它不将数组作为参数,但需要在函数内使用它,只要类关注它之外的任何事物就不存在。必须将数组传递到类的构造函数中,才能在类内部访问它。如果你想在许多类中重用你的数组,我想你可以创建一个拥有数组的trait?数组是在类中声明的。我不确定我的代码是否存在更多的潜在问题,因为我不明白为什么传入数组不起作用。不过,在函数中声明相同的数组确实有效!我不明白
$array = ['Dog', 'Cat', 'Giraffe']; // Our animals array

function animalsInOurZoo($animals) // Our function takes one argument
{
  foreach ($animals as $animal) // Loop through our array
    echo $animal . '\n'; // Print out each item.
}

animalsInOurZoo($array); // We pass our animals into our function