类中的php回调函数

tom*_*136 11 php hosting class php-5.2

由于某些原因,我们的托管公司使用PHP 5.2,甚至没有预先安装mysqli和PDO.

我别无选择,只能重写代码的某些部分,使其兼容5.2.

所以,这是我的问题:

在PHP 5.2中不支持匿名函数,所以我做了以下测试以确保我正确地更改代码:

class foo{

    public function toString(){
        $arr = array("a", "b");
        $arr2 = array("c", "d");
        print_r(array_map('mapKeyValue', $arr, $arr2));
    }

    private function mapKeyValue($v, $k){
        return $k."='".$v."'";
    }
}

$foo = new foo();
echo $foo->toString();
Run Code Online (Sandbox Code Playgroud)

但上面会给我:

Warning: array_map() expects parameter 1 to be a valid callback, function 'mapKeyValue' not found or invalid function name in ....
PHP Warning: array_map() expects parameter 1 to be a valid callback, function 'mapKeyValue' not found or invalid function name in ....
Run Code Online (Sandbox Code Playgroud)

什么是正确的方法:

array_map('mapKeyValue', $arr, $arr2);
Run Code Online (Sandbox Code Playgroud)

在课堂上?

PS:改变托管公司是否足够合理,因为他们使用的是PHP 5.2?(我得到了约7个月的合同)

nic*_*ckb 19

使用$this和数组作为回调:

array_map( array( $this, 'mapKeyValue'), $arr, $arr2);
Run Code Online (Sandbox Code Playgroud)

而且,可以肯定的是,这是通过PHP 5.2.17进行测试并确认可行的.