Перейти к содержимому


ПРоблема с пользовательской функцией function


В теме одно сообщение

#1 z3dom

    Активный участник

  • Пользователи
  • PipPipPip
  • 34 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 04 Январь 2020 - 00:47

Есть вот такой код:
function close_task()
{
}
if ($line['триггер']==1)
{
    $data['comment'] = "Прошлая сделка триггер 1";
    $new_id=insert_query($data, "test1");
	
}
display_notification("Все норм",1);

Суть кода в том, что если поле триггер - 1, то создаем новую запись. Так вот код этот не работает, пока присутствует function. Вернее он работает, но подвисает, не выходит подтверждение.

Но стоит закомментировать конструкцию function - все сразу работает...
ТАкже все работает, если закомментировать строчку insert_query, т.е. между ними какой-то конфликт.

Подскажите в чем может быть дело?

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 761 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 09 Январь 2020 - 16:03

Вставил указанный код у себя - никакого подвисания/ошибки не вышло, подтверждение и сообщение вышли успешно. Возможно конфликт у вас в теле функции, если вы не полностью выложили код.

Но вообще, сама по себе вставка тела функции в код вычисления/допдействия - это моветон, лучше выносить в отдельный файл, например в include/functions_custom.php, который для этого и предназначен. В частности, по той причине, что если у вас указанный код вызовется несколько раз (например при выделении нескольких записей), то произойдет повторная декларация функции, на что PHP выдаст fatal error. В крайней случае надо хотя бы определение функции засунуть под условие с function_exists, что не было ошибки. Но лучше вообще вынести.





Количество пользователей, читающих эту тему: 3

0 пользователей, 3 гостей, 0 анонимных