#php
#php
Вопрос:
Когда я использую функцию в foreach, убедитесь, что результаты становятся: ранее объявленными.
Я использую этот код:
foreach ($posts as $post) {
$seusag = $post['uagent'];
function getNEOS() {
global $seusag;
}
}
Я думал о чем-то вроде именования функции с id amp; string, например:
$nepoid = $post['id'];
function $nepoid() { }
Но результаты становятся ошибкой.
Итак, как создать одну функцию в foreach, которая включает каждый post_id?
Объяснение: если функция была вне foreach и, например, содержит «windows» только в массиве, и пользователь опубликовал статус, его ОС будет только «windows», но если я обновил функцию до Windows 10 и Windows 7, его сообщение не будет обновляться, потому что данные функции были удалены.уже вставлено в БД. Но если функция была внутри foreach, я могу обновлять пользовательскую ОС в любое время в зависимости от его пользовательского агента, который уже вставлен в БД во время публикации, без необходимости редактировать его предыдущее сообщение из БД.
Комментарии:
1. Не могли бы вы, пожалуйста, показать нам свой код и правильно объяснить, что вы на самом деле пытаетесь сделать и, в частности, зачем вам это нужно?
2. Почему бы вам просто не создать одну функцию вне цикла, которую вы вызываете из цикла?
3. И то, что вы пытаетесь сделать, вообще не имеет смысла. Не зная, зачем вам это нужно (о чем мы спрашивали) и какую проблему вы пытаетесь решить, мы не можем предложить какие-либо правильные предложения.
4. Честно говоря, это объяснение на самом деле мало что прояснило. Вы знаете, что вы можете передавать аргументы функциям вместо значений жесткого кодирования или использования
global
в них?5. Пожалуйста, отредактируйте свой вопрос с надлежащим объяснением, а не распространяйте его в комментариях.
Ответ №1:
Я не уверен, достигнет ли это того, чего вы хотите, но вы можете создать несколько функций в цикле, используя анонимные функции:
$functions = [];
foreach ($posts as $post) {
$seusag = $post['uagent'];
$functions[$post] = function () use ($seusag) {
return $seusag;
}
}
Я не знаю, останется ли $seusag
внутри функция прежней; Я не думаю, что это произойдет.