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

在PHP中使用命名空间为回调的静态函数,php,callback,namespaces,Php,Callback,Namespaces,php函数array\u map允许您指定一个字符串,该字符串引用静态方法,如array\u map('MyClass::method',$arr)。这如何与use语句结合使用 假设我有两个PHP文件。第一个称为b.php: <?php namespace B; class A { static function bar($i) { return $i+1; } } 来自: 听起来这是故意的。在我看来是个bug。顺便说一句,使用['A','bar']作为第一个参数也

php函数
array\u map
允许您指定一个字符串,该字符串引用静态方法,如
array\u map('MyClass::method',$arr)。这如何与
use
语句结合使用

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

<?php

namespace B;

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


听起来这是故意的。

在我看来是个bug。顺便说一句,使用
['A','bar']
作为第一个参数也会失败。
<?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);