Php 在usort函数中访问父类作用域

Php 在usort函数中访问父类作用域,php,class,scope,Php,Class,Scope,在这种情况下,是否可以使用usort()访问父类的方法 我假设由于usort使用它自己的函数作用域,所以我无法访问公共方法ismorer()。有没有办法做到这一点?我可以将该方法转换为静态函数,如果它有助于…在匿名函数中访问外部作用域中的变量,您需要使用use声明: public function load($data){ $self = $this; usort($data,function($a,$b) use ($self){ return $self-&g

在这种情况下,是否可以使用
usort()
访问父类的方法


我假设由于usort使用它自己的函数作用域,所以我无法访问公共方法
ismorer()
。有没有办法做到这一点?我可以将该方法转换为静态函数,如果它有助于…

在匿名函数中访问外部作用域中的变量,您需要使用
use
声明:

public function load($data){
    $self = $this;
    usort($data,function($a,$b) use ($self){
        return $self->isGreater($a,$b) ? 1 : -1; // THIS IS THE PROBLEM LINE
    }
}

我创建了一个局部变量
$self
,因为旧版本的PHP不允许在闭包中访问
$this

要在匿名函数中访问外部作用域中的变量,需要使用
use
声明:

public function load($data){
    $self = $this;
    usort($data,function($a,$b) use ($self){
        return $self->isGreater($a,$b) ? 1 : -1; // THIS IS THE PROBLEM LINE
    }
}

我创建了一个局部变量
$self
,因为旧版本的PHP不允许在闭包中访问
$this

Good ol'PHP。没有词法作用域,但请看:closures.Good ol'PHP。没有词法作用域,但请看:闭包。