使用命名空间中的静态函数作为PHP中的回调

时间:2014-03-29 20:15:32

标签: php callback namespaces

php函数array_map允许您指定引用静态方法的字符串,如array_map('MyClass::method', $arr);。这如何与use语句结合使用?

假设我有两个PHP文件。第一个叫做b.php:

<?php

namespace B;

class A {
  static function bar($i) {
    return $i+1;
  }
}

第二个文件名为foo.php:

<?php

require 'b.php';

use B\A;

// this works perfectly fine
print A::bar(5);

$a = array(4, 2);

// this results in an error
$b = array_map('A::bar', $a);

// this works
$c = array_map('B\A::bar', $a);

如何为\B\A::bar指定array_map方法?没有实际指定B,因为我有use语句。

1 个答案:

答案 0 :(得分:1)