Хорошо, поэтому у меня есть этот метод класса, определенный для выполнения обратного вызова, и я напечатал намека на его как вызываемый в соответствии с документацией по подсказкам типов.
protected function AddTransformData(array $definition,array $where,callable $callback){
$this->transforms[]=[$definition,$where,$callback];
}
Вот пример того, где я мог бы позвонить эта функция. Использование синтаксиса массива для передачи метода и объекта в качестве обратного вызова.
public function __construct(PostalZoneMapping $pzm){
$this->pzm=$pzm;
$this->AddTransformData(Countries::region,['filter'],[$this,'TransformId']);
$this->AddTransformData(PostalZones::id,['filter'],[$this,'TransformId']);
$this->ReceiveData();
}
Это вызывает ошибку, как показано на рисунке ниже, с жалобой на то, что аргумент 3 не вызывается, а является массивом. Логически, я думаю, в этом есть смысл, так как это массив, но это массив вызываемой функции - наверняка он должен определить, что это обратный вызов?
Это PHP причуда или я делаю что-то не так ?
Исключение из передачи вызываемого массива в качестве вызываемого параметра