在PHP中,回调的一种选择是传递一个包含对象句柄和方法名称的,由两个元素组成的数组,以对该对象进行调用。例如,如果
$obj是class的实例
MyCallable,并且您要调用on
的
method1方法,则可以将其作为回调传递。
MyCallable``$obj``array($obj, "method1")
使用此受支持的回调类型的一种解决方案是定义一个单用类,该类本质上类似于闭包类型:
function sort_by_term_meta( $terms, $meta ) { usort($terms, array(new TermmetaCmpClosure($meta), "call"));}function term_meta_cmp( $a, $b, $meta ){ $name_a = get_term_meta($a->term_id, $meta, true); $name_b = get_term_meta($b->term_id, $meta, true); return strcmp($name_a, $name_b); }class TermmetaCmpClosure{ private $meta; function __construct( $meta ) { $this->meta = $meta; } function call( $a, $b ) { return term_meta_cmp($a, $b, $this->meta); }}


