У меня есть массив, объявленный в начале моего кода
$animal = array (
"Dog",
"Cat");
Теперь я хочу иметь возможность использовать эти значения в рамках метода. Я хочу держаться подальше от доступных глобальных решений и задавался вопросом, есть ли способ сделать это, создав массив снова?
например, создать новый массив
$animal_store = array();
а затем цикл через исходный массив и добавить значения в новый массив. Это возможно?
Любой из этих примеров поможет?
$animals = ['Dog', 'Cat', 'Cobra Kai'];
class Zoo {
protected $animals;
public function setAnimals($animals)
{
$this->animals = $animals;
}
public function getAnimals()
{
return $this->animals;
}
}
class NoInvestorsZoo extends Zoo {
public function __construct()
{
// We have nothing to start out with, hopefully we can setAnimals some time...
}
}
class LotsOfInvestorsZoo extends Zoo {
public function __construct($animals)
{
$this->setAnimals($animals);
// No serious investor would start a zoo without having animals!
}
}
// For our zoo to be populated we could...
$iLoveAnimals = new NoInvestorsZoo;
// After lots of lunch meetings and fund raisers...
$iLoveAnimals->setAnimals($animals); // Hooray!!
// Meanwhile
$capitalistPigsRUs = new LotsOfInvestorsZoo($animals);
// Mohahaha!
В любом случае мы могли бы тогда
$iLoveAnimals->getAnimals();
Или
$capitalistPigsRUs->getAnimals();
Поэтому рассмотрим следующий пример.
$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
Теперь; вы хотите передать массив в свою функцию и вместо этого напечатать каждый элемент, вы хотите, чтобы HINT нажимал HINT элементы в другой массив.
Я предлагаю, чтобы ваша функция возвращала массив и назначала переменную вашей возвращенной функции.
Да, это возможно
$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;
}
затем назовите его функцией u
function doJob(){
echo "<pre>";
$animal = getArray();
var_dump($animal);
}
class Test {
public static $animal = array("cat", "dog");
}
И теперь вы можете использовать этот статический член во всех своих методах
$animal_store = $animal;
?!