这里的array_walk为什么要这样用?

来源:5-5 [PDO] 数据库操作类之主键查询

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应该是返回一个数组吧,这样写不会有问题?

求解惑,谢了

写回答 关注

4回答

  • weixin_慕虎3318521
    2019-04-30 11:57:32

    这个意思是对$fields中的每一个元素执行了一次

     PdoMySQL::addSpecilChar($value)
    $value就是$fields中的每一个元素

    慕斯7032...

    谢谢,这句话重要

    2019-12-19 10:01:10

    共 1 条回复 >

  • 杨大锤520
    2018-08-11 11:22:10

    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


  • qq_谦业_0
    2016-08-01 17:41:19

    求大神解答

  • qq_解丶语花_0
    2016-05-02 09:17:24

    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—数据库抽象层

本教程主要通过实战演练深入剖析PDO以加深理解

30043 学习 · 396 问题

查看课程

相似问题