- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Предлагаю в этой теме решать вопросы по перенастройке кода с PHP 7 на PHP 8
столкнулся с такой ошибкой:
Fatal error: Uncaught Error: Undefined constant "node\array_intersect"
В переменной $tar формировал массивы, аргументы для функции array_intersect затем вызывал её таким образом.
Напрямую вызывать не могу так как количество массивов в аргументах заранее не известно.
Теперь PHP говорит, что функции такой нет. Есть мысли как исправить ошибку?
Если так?
А какой смысл в этой затее?
О какой именно? Приводить код согласно документации, которая теперь строгая в PHP 8?
Да не зачем, по сути.
Если так?
Дело в том что array_intersect это стандартная функция. Теперь я так понимаю нельзя стандартные функции вызывать как callback. Тогда что они могут предложить взамен?
Я использовал данную конструкцию для сортировки данных.
А какой смысл в этой затее?
Знаете анекдот: "А где оно?" 😀
Дело в том что это(array_intersect) стандартная функция. Теперь я так понимаю нельзя стандартные функции вызывать через callback. Тогда что они могут предложить взамен?
Всё она вызывает без проблем.
<?php
$tar[0]=array('1');
$tar[1]=array('1');
call_user_func_array('array_intersect',$tar);
?>
Этот код работает без ошибок. У вас ошибка другая теперь:
https://wiki.php.net/rfc/named_params
ищите по "does not accept unknown named parameters"
А какой смысл в этой затее?
Странный вопрос.
Этот код работает без ошибок.
Я так понимаю они упростили функцию array_intersect, так как раньше она обрабатывала это
возвращая
Array( [0] => catalog )
До меня дошло 😀 Наверно теперь [htm] и [css] принимаются как именованные аргументы функции, а так как именованных аргументов в array_intersect нет, то выдаёт ошибку.
Да. Вот так работает.
Получается теперь нужно убирать ключи.
Можно заюзать как сделал drupal, через функцию:
https://www.php.net/manual/ru/function.array-values.php
call_user_func_array('array_intersect', array_values ($tar));
В некоторых местах придётся переписывать код заново.
ЗЫ. У меня вот функция сортировки получала массив с списком htm, css файлов и если были одинаковые имена, то создавала массив с этими именами(как компонент), а те что без тёски так скажем оставляла в исходном массиве. То есть мне нужны ключи htm и css чтобы если останутся файлы без тёсок выводить их по отдельности. А у которых есть пара(тёска) это компонент который редактируется вместе макет и стили к нему.
О какой именно? Приводить код согласно документации, которая теперь строгая в PHP 8?