Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php передать параметр в callback функцию / 9 сообщений из 9, страница 1 из 1
21.09.2021, 00:02
    #40098826
didgik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php передать параметр в callback функцию
Привет народ!
Я правильно понимаю, что php передать параметр в callback функцию не через задницу нельзя?
типа:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?php //php 5.6.38 
function my_callback($item, $param2) {
  return echo $item." ".$param2;
}

$strings = ["Apple", "Asus", "Huawei", "Lenovo"];
$param2 = "hello";
$ret = array_map("my_callback", $strings); // ?????
print_r($ret);

?>
...
Рейтинг: 0 / 0
21.09.2021, 00:16
    #40098827
didgik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php передать параметр в callback функцию
Я, конечно, выкрутился через
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
function my_callback($item, $param2) {
  return $item." ".$param2;
}

$strings = ["Apple", "Asus", "Huawei", "Lenovo"];
$param2 = "hello";
$ret = array_map(function ($item) use ($param2) {
                   return  my_callback($item, $param2);
                 }
                 , $strings);
print_r($ret);


но малоли.
...
Рейтинг: 0 / 0
21.09.2021, 17:49
    #40099114
DHDD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php передать параметр в callback функцию
didgik,
Код: php
1.
2.
call_user_func(callable $callback, mixed ...$args): mixed
call_user_func_array(callable $callback, array $args): mixed


https://www.php.net/manual/ru/function.call-user-func.php
https://www.php.net/manual/ru/function.call-user-func-array.php
...
Рейтинг: 0 / 0
21.09.2021, 23:02
    #40099147
didgik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php передать параметр в callback функцию
DHDD, я пробовал типа array_map("my_callback", array($strings, $param2)); но не прокатило
...
Рейтинг: 0 / 0
23.09.2021, 09:33
    #40099466
estic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php передать параметр в callback функцию
didgik
DHDD, я пробовал типа array_map("my_callback", array($strings, $param2)); но не прокатило
Естественно. Смотрите описание array_map. Нужно использовать отдельный аргумент-массив, заполнив его (одним и тем же) значением $param2 (при помощи array_fill или array_pad).
...
Рейтинг: 0 / 0
23.09.2021, 09:38
    #40099468
estic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php передать параметр в callback функцию
didgik
return my_callback
А непосредственно my_callback нельзя сделать анонимной?
...
Рейтинг: 0 / 0
23.09.2021, 09:48
    #40099471
estic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php передать параметр в callback функцию
Также можно непосредственно видоизменять обрабатываемый массив при помощи array_walk. В этом случае есть возможность передавать дополнительный аргумент в колбэк.
...
Рейтинг: 0 / 0
23.09.2021, 15:01
    #40099531
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php передать параметр в callback функцию
Код: php
1.
2.
3.
4.
$example = function ($arg, $message) {
    var_dump($arg . ' ' . $message);
};
$example("hello", "world" );
...
Рейтинг: 0 / 0
23.09.2021, 15:59
    #40099556
didgik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
php передать параметр в callback функцию
estic
didgik
return my_callback
А непосредственно my_callback нельзя сделать анонимной?

Изначально она и была анонимной, но мне надо от этого уйти.

ScareCrow
Код: php
1.
2.
3.
4.
$example = function ($arg, $message) {
    var_dump($arg . ' ' . $message);
};
$example("hello", "world" );


Я в курсе такого способа, но как его использовать в контексте моего вопроса я не понимаю.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / php передать параметр в callback функцию / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]