gpt4 book ai didi

php - array_map 并将 2 个参数传递给映射函数 - array_map() : Argument #3 should be an array

转载 作者:IT王子 更新时间:2023-10-29 00:19:48 25 4
gpt4 key购买 nike

我有一个看起来像这样的抽象类:

abstract class Transformer {

/**
* Transform a collection of items
*
* @param array $items
* @param bool $format
* @return array
*/
public function transformCollection(array $items, $format)
{
return array_map([$this, 'transform'], $items, $format);
}

/**
* Transform a item
*
* @param array $item
* @param bool $format
* @return mixed
*/
public abstract function transform(array $item, $format);

}

然后我有以下实现它的类:

class ServiceLogTransformer extends Transformer {

public function transform(array $service_log, $format = false)
{
return [
'id' => $service_log['id'],
'date' => $service_log['log_date'],
'time' => $service_log['log_time'],
'type' => ($format ? status_label($service_log['log_type']) : $service_log['log_type']),
'entry' => $service_log['log_entry']
];
}

}

运行这段代码时,出现错误:

array_map():参数#3 应该是一个数组

当你在一个类中调用array_map函数时,你如何传递2个或更多参数?我检查了 PHP 文档,看起来这是允许的,但它不适用于我的 Larave 4.2 项目。

有什么想法吗?

最佳答案

请始终阅读文档:

http://php.net/manual/en/function.array-map.php

array array_map ( callable $callback , array $array1 [, array $... ] )

然而你传递了 bool $format 作为参数

"How do you pass 2 or more arguments when you call array_map function within a class?

我会用 use() 语法创建匿名函数

public function transformCollection(array $items, $format)
{
return array_map(function($item) use ($format) {
return $this->transform($item, $format);
}, $items);
}

关于php - array_map 并将 2 个参数传递给映射函数 - array_map() : Argument #3 should be an array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27599767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com