Как использовать константы внутри Amp\parallelMap в PHP?Php

Кемеровские программисты php общаются здесь
Anonymous
Как использовать константы внутри Amp\parallelMap в PHP?

Сообщение Anonymous »

Мне нужна помощь с использованием глобальных констант внутри amp\parallelMap. У меня есть файл начальной загрузки require_once в моем проекте, где я определяю глобальные константы, такие как MAX_DATA.
Метод reCalc требует доступа к глобальной константе MAX_DATA< /code>, но я не могу получить к нему доступ внутри замыкания, переданного в ParallelMap. Я получаю сообщение об ошибке «Неопределенная константа MAX_DATA».
Вот упрощенная версия моего кода:

Код: Выделить всё

$pool = new DefaultPool(self::THREAD_COUNT);

$results = wait(parallelMap($data, function ($point) {
return $this->reCalc($point); // some time-intensive task
}, $pool));

Единственное решение, которое я нашел, — это снова определить константу внутри замыкания или снова включить файл начальной загрузки:

Код: Выделить всё

$max = MAX_DATA;

$pool = new DefaultPool(self::THREAD_COUNT);

$results = wait(parallelMap($data, function ($point) use ($max) {
if (!defined('MAX_DATA')) define('MAX_DATA', $max);

return $this->reCalc($point); // some time-intensive task
}, $pool));

Есть ли лучший способ получить доступ к глобальным константам внутри замыкания, переданного в ParallelMap, без их переопределения?

Подробнее здесь: https://stackoverflow.com/questions/790 ... map-in-php

Вернуться в «Php»