Передача массива между функциями.
Пишу на PHP. В данном языке я новичок.
Описание ситуации:
Есть куча файлов. Имя каждого из них сл. вида:"Офис + ПК_Дата__Имя Польхователя." Я написал код (на php), который перебирает и выводит эти файлы, согласно параметрам фильтра. Фильтр состоит из шести основных функций. Одна функция отвечает за имя, вторая за ПК, третья-четвертая и пятая за день-месяц-год соответственно шестая вывод.
Описание проблемы:
Пишу еще один фильтр, на основе имеющегося, который будет выводить меньшее и большее число из файлов одного офиса. То-есть есть два файла, один из них содержит запись с меньшим количеством времени, а второй с большим. Я создал массив, пытаюсь записать туда под ключом "имя офиса" - время. оно записывается, но после этого необходимо посмотреть время в том-же офисе, но на другом ПК. И тут все слетает.
Код:
function User()
{
...
foreach ()
{
...
Ofice();
}
}
function Ofice()
{
...
foreach ()
{
...
Year();
}
}
function Year()
{
...
foreach ()
{
...
Month();
}
}
function Month();
{
...
foreach ()
{
...
Day();
}
}
function Day()
{
...
foreach ()
{
...
Open()
}
}
function Open();
{
if ($open=="Yes")
{
if (file_exists($file_name))
{include "$file_name";}
}
else
{
$arr = file($file_name);
foreach ($arr as $item)
{
if (preg_match("!<td id='in'>(.*?)</td></tr>!",$item,$name))
{
$timeIn['$ofice']=$name[1];
}
}
}
}
{
...
foreach ()
{
...
Ofice();
}
}
function Ofice()
{
...
foreach ()
{
...
Year();
}
}
function Year()
{
...
foreach ()
{
...
Month();
}
}
function Month();
{
...
foreach ()
{
...
Day();
}
}
function Day()
{
...
foreach ()
{
...
Open()
}
}
function Open();
{
if ($open=="Yes")
{
if (file_exists($file_name))
{include "$file_name";}
}
else
{
$arr = file($file_name);
foreach ($arr as $item)
{
if (preg_match("!<td id='in'>(.*?)</td></tr>!",$item,$name))
{
$timeIn['$ofice']=$name[1];
}
}
}
}
Я пробовал вызывать каждую функцию через &, то-есть присваивать ее результат массиву и возвращать его вызываемой функции, но не получилось. Массив теряет свои значения на пол пути.
Может есть вариант сохранять значения массива например в другой функции, и после выхода из нее, чтоб значения сохранялись. Или, в идеале, как в языке С++ объявить глобальную переменную так, чтоб ее не надо было тащить за собой, но можно было изменять ее значение в любой функции.
Код:
$timeIn=Array();
function test()
{
global $timeIn;
$timeIn[0]=1;
}
echo $timeIn[0];
function test()
{
global $timeIn;
$timeIn[0]=1;
}
echo $timeIn[0];
И всего делов. Два дня голову ломал, какие-то нелепые схемы придумывал...
Код:
$timeIn = Array();
function test(&$timeIn)
{
...
}
function test(&$timeIn)
{
...
}