Felix_XP
2016-01-12 23:44
查手册看到 bool array_walk ( array &$array , callable $funcname [, mixed $userdata = NULL ] )
第一个参数是数组,第二个参数是回调函数名
可是第97行老师写的为什么是写
array_walk ($fields , array('PdoMySQL','addSpecilChar'));
为什么不直接回调addSpecilChar?
array应该是返回一个数组吧,这样写不会有问题?
求解惑,谢了
这个意思是对$fields中的每一个元素执行了一次
PdoMySQL::addSpecilChar($value)
$value就是$fields中的每一个元素
array_walk()函数的作用是:使用用户自定义的函数对数组中的每个元素做回调处理,所以第一个参数为数组,第二个参数是回调函数名,但要在类内部应用array_walk()函数,有下面的规范:
如果回调函数是类中的静态方法,这样调用:
array_walk($array, array('self', 'walkFunction'));
或者:
array_walk($array, array('className', 'walkFunction')); // className指当前的类名
如果回调函数是类中的非静态方法:
array_walk($array, array($this, 'walkFunction')); //其中walkFunction为类的方法名
当然,如果你不在类中使用,回调函数就可以直接是函数名。例如这样:
<?php $fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); function test_print($item, $key) { echo "$key. $item<br />\n"; } array_walk($fruits, 'test_print'); ?>
结果为:
d. lemon a. orange b. banana c. apple
求大神解答
Calling an array Walk inside a class
If the class is
static:
array_walk($array, array('self',
'walkFunction'));
or
array_walk($array, array('className',
'walkFunction'));
Otherwise:
array_walk($array, array($this,
'walkFunction'));
PDO—数据库抽象层
30043 学习 · 396 问题
相似问题