我有以下代码:
public function compareObjects($object1, $object2){
return $object1->id - $objects2->id
}
$diff = array_udiff($array1, $array2, 'compareObjects');
但它一直说比较方法不存在或者是无效的函数名....
我以为我做对了?
我有以下代码:
public function compareObjects($object1, $object2){
return $object1->id - $objects2->id
}
$diff = array_udiff($array1, $array2, 'compareObjects');
但它一直说比较方法不存在或者是无效的函数名....
我以为我做对了?
实例化对象的方法作为数组传递,该数组包含索引 0 处的对象和索引 1 处的方法名称。
// Functions
$diff = array_udiff($array1, $array2, 'compareObjects');
// Object methods
$diff = array_udiff($array1, $array2, array($this, 'compareObjects'));
// -OR-
$diff = array_udiff($array1, $array2, array($my_obj, 'compareObjects'));
// Static class methods
$diff = array_udiff($array1, $array2, 'some_class::compareObjects'); // PHP 5.2.3+
它正在寻找一个纯函数,而不是类方法。您需要使用$this
, 就像对类方法的任何调用一样。
你需要这样做...
$diff = array_udiff($array1, $array2, array($this, 'compareObjects'));
同样,如果您在课堂外使用它,则需要像这样使用它...
$objRandom = new Whatever;
// do some fancy PHP stuff, or not
$diff = array_udiff($array1, $array2, array($objRandom, 'compareObjects'));
这几乎就是如何使用带有回调函数/方法的任何 PHP 函数。