Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: работа функции

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: "не срабатывает" функция
yogeswar
Отправлено: 10 Декабря, 2018 - 08:18:45
Post Id


Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Сент. 2012  
Откуда: Екатеринбург


Помог: 0 раз(а)




Есть файл wasy.php в нём такие скрипты (сокращённо):
PHP:
скопировать код в буфер обмена
  1.  
  2. if(!isset($_SESSION)) {session_start();}
  3. require "funkcii.php";
  4. //----------------------------
  5. $_SESSION['id_rep1'] = $id_rep1;
  6. //------------------------------
  7. Proba();
  8. global $id_rep;
  9. echo "<pre>";print_r($id_rep);echo "<pre>";//вывод 3
  10.  

Есть файл funkcii.php, где создана функция Proba:
PHP:
скопировать код в буфер обмена
  1.  
  2. function Proba()
  3. {
  4. $aragva = $_SESSION['aragva'];//это массив
  5. echo "<pre>";print_r($aragva);echo "<pre>";//вывод 1   
  6. $id_rep = $aragva;
  7. echo "<pre>";print_r($id_rep);echo "<pre>";//вывод 2
  8. return $id_rep;
  9. }
  10.  

Результат выполнения файла wasy.php
Array
(
[0] => 2
[1] => 7
[2] => 11
[3] => 12
)

Array
(
[0] => 2
[1] => 7
[2] => 11
[3] => 12
)
То есть выполнился вывод 1 и вывод 2, но не выполнился вывод 3, хотя функция вызвана.
Что не так?
 
 Top
Строитель Модератор
Отправлено: 10 Декабря, 2018 - 09:32:47
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Вот эта строка global $id_rep; должна быть прописана в теле функции Proba(). Так как переменная $id_rep глобальная, и выше строки return $id_rep; в эту переменную уже внесены изменения, а так же - т.к. результат работы функции Proba() никак не используется (используется только вычисление в теле функции без возврата значения), то строка return $id_rep; явно лишняя.
 
 Top
yogeswar
Отправлено: 10 Декабря, 2018 - 11:59:07
Post Id


Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Сент. 2012  
Откуда: Екатеринбург


Помог: 0 раз(а)




[quote=Строитель][/quote]
Составил 2 простейших файла: drug1 и drug2
drug2
PHP:
скопировать код в буфер обмена
  1. function dydy()
  2. {
  3. $ar = $_SESSION['id_rep1'];//это массив  
  4. $id_rep = $ar;
  5. //global $id_rep;
  6. //return $id_rep;

drug1
PHP:
скопировать код в буфер обмена
  1. if(!isset($_SESSION)) {session_start();}
  2. require "drug2.php";
  3. $id_rep1 = array(0=>1, 1=>2, 2=>3, 3=>4);
  4. //----------------------------
  5. $_SESSION['id_rep1'] = $id_rep1;
  6. //------------------------------
  7. dydy();
  8. echo "<pre>";print_r($id_rep);echo "<pre>";//вывод 3

Выполняю drug1 - ничего не происходит. По вашим рекомендациям global - в теле функции. Причём, делал различные комбинации: убирал "//" то в одной записи //global $id_rep; то в другой //return $id_rep; то в обоих сразу. Вывода массива нет. Ничего нет.
(Добавление)
[quote=yogeswar][/quote]
Извини, СТРОИТЕЛЬ, всё получилось
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB