Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Передача массива между функциями.

18K
03 декабря 2010 года
imAlex
179 / / 29.07.2010
Добрый день.
Пишу на 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];
                                }
                         }
}
}

Я пробовал вызывать каждую функцию через &, то-есть присваивать ее результат массиву и возвращать его вызываемой функции, но не получилось. Массив теряет свои значения на пол пути.
Может есть вариант сохранять значения массива например в другой функции, и после выхода из нее, чтоб значения сохранялись. Или, в идеале, как в языке С++ объявить глобальную переменную так, чтоб ее не надо было тащить за собой, но можно было изменять ее значение в любой функции.
18K
03 декабря 2010 года
imAlex
179 / / 29.07.2010
Вот я глупый...
 
Код:
$timeIn=Array();

function test()
{
global $timeIn;
$timeIn[0]=1;
}
echo $timeIn[0];

И всего делов. Два дня голову ломал, какие-то нелепые схемы придумывал...
13
03 декабря 2010 года
RussianSpy
3.0K / / 04.07.2006
Как вариант массив еще можно передать в качестве аргумента в виде указателя
 
Код:
$timeIn = Array();

function test(&$timeIn)
{

...

}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог