这里课程代码是array_walk($fields, array('PdoMySQL', 'addSpecilChar'));
但是我看官方文档的是
bool array_walk ( array &$array , callable $funcname [, mixed $userdata =
NULL ] )
后面的参数为什么不是方法名而是一个数组呢,数组的PdoMySQL的含义又是?
后面的
public static function parseFields($fields){
if(is_array($fields)){
array_walk($fields, array('PdoMySQL', 'addSpecilChar'));
$fieldsStr = implode(',', $fields);
}elseif(is_string($fields) && !empty($fields)){
if(strpos($fields, '`') === false){
$fields = explode(',', $fields);
array_walk($fields, array('PdoMySQL', 'addSpecilChar'));
$fieldsStr = implode(',', $fields);
}else{
$fieldsStr = $fields;
}
}else{
$fieldsStr = '*';
}
return $fieldsStr;
}
为什么参数要是引用的形式传入,这样传入参数后为什么还要返回它,这样就不需要返回了吧
1 回答
茶花烙
TA贡献1条经验 获得超0个赞
关于array_walk
array_walk($fields, array('PdoMySQL', 'addSpecilChar'));
这个是在一个类的内部使用array_walk,即把$fields通过PdoMySQL这个类中的addSpecilchar方法进行过滤。
你后面的那个 parseFields方法没看到有引用传参,所以处理后需要有返回值。
引用传参是会改变原始数据的,array_walk(&$array,$functionname),但是此种方式不应该改变原始数据的结构,比如说数组,不应该添加元素或者删除元素,因为这有可能出现不可预知的后果。
- 1 回答
- 0 关注
- 1498 浏览
添加回答
举报
0/150
提交
取消