Для вступления в общество новичков и профессионалов домен-индустрии, пожалуйста нажмите здесь ...

   
 Купля-продажа и обсуждение доменных имён
        

  
Вернуться   Форум о доменах > Дизайн и развитие проектов > Программирование
Регистрация Реноме Правила форума Справка Пользователи Социальные группы Все разделы прочитаны
Программирование PHP, Perl, HTML, XHTML, CSS, JavaScript, MySQL и другие языки кодирования.

Ответ
 
Опции темы
Сегодня
от 149р за .RU
Аренда сервера
2x Intel Hexa-Core Xeon E5-2420
Всего 79 евро!

с видеокартой GeForce GTX 1080 Ti
всего 99 евро!

от 149р за .РФ Реклама на DomenForum.net
Старый 20.03.2016, 10:18   #1
 
Аватар для Port_Artur
 
Регистрация: 03.12.2006
Адрес: Россия
Сообщений: 3,495
Доменные сделки: 24
Реноме: 1551
Одобрения
Спасибо (Отдано): 529
Спасибо (Получено): 750
Отправить сообщение для Port_Artur с помощью ICQ
in_array() expects parameter 2 to be array, null given

Функция заполнения массива $array_r случайными (уникальными) числами в диапазоне от $start до $end.

Вначале массиву $array_r присваивается значение массива $banners состоящего из нескольких элементов, нужно дописать недостающее количество элементов, - ещё 1-2 значения.

PHP код:
function unic_rnd($start$end$count){ 
 global 
$banners
 
$array_r = array(); 
 
$array_r =$banners
 
$i=0
   while(
$i++<$count){ 
    
$rnd rand($start$end); 

128:      if(!in_array($rnd$array_rtrue)){ 
         
$array_r[] = $rnd
       } 

         else{ 
        
$count=$count+1
       } 
   } 
return 
$array_r


При обычном вызове файла .php - всё работает без ошибок.

А при включении через include выпадает ошибка:

Warning: in_array() expects parameter 2 to be array, null given in /home/public_html/banner.php on line 128

PHP код:
128: if(!in_array($rnd$array_rtrue)){ 
Почему возникает ошибка?

Последний раз редактировалось Port_Artur; 20.03.2016 в 10:21.
Port_Artur вне форума   Ответить с цитированием
Старый 20.03.2016, 23:55   #2
 
Аватар для Port_Artur
 
Регистрация: 03.12.2006
Адрес: Россия
Сообщений: 3,495
Доменные сделки: 24
Реноме: 1551
Одобрения
Спасибо (Отдано): 529
Спасибо (Получено): 750
Отправить сообщение для Port_Artur с помощью ICQ
Массив $array_r первоначально не пустой, он всегда содержит один элемент:

Array ( [0] => 6 )

Тогда откуда ошибка?
Port_Artur вне форума   Ответить с цитированием
Старый 21.03.2016, 23:17   #3
 
Аватар для renegat
 
Регистрация: 27.09.2011
Адрес: Москва
Сообщений: 2,320
Доменные сделки: 28
Реноме: 2347
Одобрения
Спасибо (Отдано): 577
Спасибо (Получено): 723
Может в include путь неверно указан?
renegat вне форума   Ответить с цитированием
Старый 22.03.2016, 00:25   #4
 
Аватар для Port_Artur
 
Регистрация: 03.12.2006
Адрес: Россия
Сообщений: 3,495
Доменные сделки: 24
Реноме: 1551
Одобрения
Спасибо (Отдано): 529
Спасибо (Получено): 750
Отправить сообщение для Port_Artur с помощью ICQ
Путь верный, иначе ошибку на 128 строку не выдавало бы.
Port_Artur вне форума   Ответить с цитированием
Старый 22.03.2016, 22:34   #5
 
Аватар для Port_Artur
 
Регистрация: 03.12.2006
Адрес: Россия
Сообщений: 3,495
Доменные сделки: 24
Реноме: 1551
Одобрения
Спасибо (Отдано): 529
Спасибо (Получено): 750
Отправить сообщение для Port_Artur с помощью ICQ
Короче, избавился от функции и всё заработало.
Port_Artur вне форума   Ответить с цитированием
Старый 22.03.2016, 22:47   #6
Тех. администратор
 
Аватар для UFO
 
Регистрация: 16.03.2005
Адрес: mouse.mars
Сообщений: 10,725
Доменные сделки: 17
Реноме: 8693
Одобрения
Спасибо (Отдано): 141
Спасибо (Получено): 313
Warning - не является серьезной ошибкой, в исключительных случаях, Вы можете поставить символ @ перед строкой, где появляется ошибка, и она исчезнет, но так надо делать только если понимаете, что обработчик не может иначе Ваш код интерпретировать - только с ошибкой, тогда надо ее скрыть. А так по существу ошибки, у Вас в массиве $array_r в какой-то момент появляются пустые/неправильные значения (в функции, в цикле и т.д.). И иногда бывает полезно определять переменные до начала функции или цикла, т.е. может помочь выше написать, что $array_r = чему-то там. А дальше переопределять, если надо.
__________________
Волн нет! | Whois | Полезный форум о геологии
UFO вне форума   Ответить с цитированием
Старый 22.03.2016, 22:51   #7
 
Аватар для Port_Artur
 
Регистрация: 03.12.2006
Адрес: Россия
Сообщений: 3,495
Доменные сделки: 24
Реноме: 1551
Одобрения
Спасибо (Отдано): 529
Спасибо (Получено): 750
Отправить сообщение для Port_Artur с помощью ICQ
Где-то прочитал что при объявлении переменной глобальной она типа может менять свои значения, да и вообще объявление переменной глобально это значит что не умеешь писать.
Внял, избавился от функции и необходимости глобальной переменной.
Хотя, сейчас вот пока пишу, думаю, что её можно было просто предать в функцию в качестве параметра. Осенило блин. Но уже поздно. Как вариант на будущее.
Port_Artur вне форума   Ответить с цитированием
Старый 23.03.2016, 00:25   #8
Тех. администратор
 
Аватар для UFO
 
Регистрация: 16.03.2005
Адрес: mouse.mars
Сообщений: 10,725
Доменные сделки: 17
Реноме: 8693
Одобрения
Спасибо (Отдано): 141
Спасибо (Получено): 313
Сообщение от Port_Artur Посмотреть сообщение
Внял, избавился от функции и необходимости глобальной переменной.
Да ну, думаю, можно писать, это тоже удобства добавляет - знаешь какие функции работают ниже, какие излишние - это тоже обнаруживается, потом можно оптимизировать.
А так, конечно, функция большая, я так понимаю для случайного показа баннера, я бы сделал что-то попроще, правильно что убрали
__________________
Волн нет! | Whois | Полезный форум о геологии
UFO вне форума   Ответить с цитированием
Ответ



Реклама

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Закладки Добавить Тема в закладки

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 03:30. Часовой пояс GMT +4.