gpt4 book ai didi

PHP usort比较器函数需要访问类成员变量——如何调用它

转载 作者:行者123 更新时间:2023-12-02 07:35:19 25 4
gpt4 key购买 nike

我正在尝试在 PHP 中使用 usort() 函数。我不确定如何调用比较函数。下面是我的代码。我尝试了 $this->comparator 但没有帮助。如果 comparator 是一个不需要访问类的成员变量的函数,这会很容易。

class A { 
$p1 // non-associative array
$p2 // non-associative array
public function comparator($a, $b)
{
// the usual comparison stuff
if ($this->p1[$a] == $this->p2[$b])
return 0;
else ($this->p1[$a] < $this->p2[$b])
return 1;
else
return -1;
}

public function sorting()
{
// after some code
$some_array = array(..);
usort($some_array, "comparator") // <--- ERROR here: does not recognize comparator
}
}

最佳答案

您需要在 callable 中指定排序函数方式:

usort($some_array, array($this, "comparator"));

即使在 PHP 5.4 之前不存在可调用类型,但引用方法的工作方式相同。

关于PHP usort比较器函数需要访问类成员变量——如何调用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17121650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com