Идея здесь заключается в создании класса, который строит с помощью функции и массива параметров и вызовов, которые функционируют в новом потоке.
Это мой класс:
class FunctionThread extends Thread { public function __construct($fFunction, $aParameters){ $this->fFunction = $fFunction; $this->aParameters = $aParameters; } public function run(){ $this->fFunction($this->aParmeters[0], $this->aParmeters[1], ...); } }
Очевидно, что функция запуска неверна, что подводит меня к моему вопросу:
Предполагая, что у массива гарантируется правильное количество элементов в соответствии с вызываемой функцией, как я могу вызвать функцию в PHP с неизвестным количеством аргументов, которые хранятся в массиве?
Изменить: Также у меня нет доступа к содержимому данной функции, поэтому ее нельзя редактировать.
Изменить 2: Я ищу что-то похожее на функцию карри схемы.
Начиная с PHP 5.6, теперь это возможно. Массивы могут быть расширены в список аргументов, используя оператор … так:
<? class FunctionThread extends Thread { public function __construct($fFunction, $aParameters){ $this->fFunction = $fFunction; $this->aParameters = $aParameters; } public function run(){ $this->fFunction(... $this->aParmeters); } } ?>
См. Здесь для получения дополнительной информации
Я думаю, что функция должна принять в своем случае массив arg
class FunctionThread extends Thread { public function __construct($fFunction, $aParameters){ $this->fFunction = $fFunction; $this->aParameters = $aParameters; } public function run(){ $this->fFunction($this->aParmeters); } public function fFunction($arr){ $var0 = $arr[0]; $var1 = $arr[1]; ... do .. } }