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
Отправлено: 30 Октября, 2016 - 08:32:49
Post Id


Гость


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


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




Непонятная ошибка.
Описываю функцию
PHP:
скопировать код в буфер обмена
  1. function parol(){
  2. global $buka;    
  3. global $wasy;
  4. $it = array();
  5. $wrem = mysql_query("SELECT * FROM catalog1
  6. WHERE email = '".$wasy[0]."' and mobil_tel = '".$buka."'")
  7. while($toma = mysql_fetch_array($wrem,MYSQLI_NUM)){
  8. $it[] = $toma;}
  9. $it = @call_user_func_array('array_merge', $it);
  10. echo "<pre>";print_r($it);echo "<pre>";  
  11. //Нормально выдаёт массив
  12. return $it;
  13. }


В программе пишу


PHP:
скопировать код в буфер обмена
  1. parol();
  2. echo "<pre>";print_r($it);echo "<pre>";


Выдаёт

PHP:
скопировать код в буфер обмена
  1. Notice:  Undefined variable: it in /var/www/save_parol.php on line


Где что написано неправильно?
(Добавление)
Прочитал заметку OrmaJever и всё исправил.
Действительно умный кот.
Спасибо!
 
 Top
Ermite
Отправлено: 30 Октября, 2016 - 14:56:52
Post Id


Новичок


Покинул форум
Сообщений всего: 41
Дата рег-ции: Февр. 2016  


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




Потому что $it не является глобальной переменной. Вот так должно работать

PHP:
скопировать код в буфер обмена
  1.     function parol(){
  2.     global $buka, $wasy, $it;
  3.     $it = array();
  4.     $wrem = mysql_query("SELECT * FROM catalog1
  5.    WHERE email = '".$wasy[0]."' and mobil_tel = '".$buka."'")
  6.     or die(mysql_error());
  7.     while($toma = mysql_fetch_array($wrem,MYSQLI_NUM)){
  8.     $it[] = $toma;}
  9.     $it = @call_user_func_array('array_merge', $it);
  10.     echo "<pre>";print_r($it);echo "<pre>";  
  11.     //Нормально выдаёт массив
  12.     }
 
 Top
Fart
Отправлено: 30 Октября, 2016 - 15:41:17
Post Id



Посетитель


Покинул форум
Сообщений всего: 324
Дата рег-ции: Июль 2016  


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




Незачем делать глобальные переменные внутри функции . достаточно новой переменной присвоить возвращаемое значение из функции. global в функции стоит убрать и сделать как аргументы .
 
 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