Php 使字符串成为对象?

Php 使字符串成为对象?,php,string,function,Php,String,Function,我在将字符串转换为对象时遇到问题。以下是函数: public function slikepoid($dire,$id) { $this->dire=$dire; $this->id=$id; $slike = $this->skupljanjeslika($this->dire); $slikeid = array_filter($slike, function($el) { return substr( $el, 0,

我在将字符串转换为对象时遇到问题。以下是函数:

public function slikepoid($dire,$id)
{
    $this->dire=$dire;
    $this->id=$id;
    $slike = $this->skupljanjeslika($this->dire);
    $slikeid = array_filter($slike, function($el) { 
        return substr( $el, 0, 2) == '$this->id-'; // Here is the problem !
    });
    return $slikeid;
}
我得到了这个错误:

致命错误:第8行不在对象上下文中时使用$this

我试过:

 return substr( $el, 0, 2) == ''.(string)$this->id;'-'; 

但是运气不好:(

您应该能够使用a来完成此任务:

$slikeid = array_filter($slike, function($el) use( $id) { 
    return substr( $el, 0, 2) == $id; 
});

现在,
$id
应该在匿名函数的作用域内,因此您应该能够将元素值与它进行比较。

您应该能够使用a来完成此操作:

$slikeid = array_filter($slike, function($el) use( $id) { 
    return substr( $el, 0, 2) == $id; 
});

现在,
$id
应该在匿名函数的作用域内,因此您应该能够将元素值与之进行比较。

在PHP5.3中,您不能在匿名函数(闭包)内使用
$this
。我认为你可以在PHP5.4中这样做。是的,但是如何转换字符串中的构造函数?在PHP5.3中,你不能在匿名函数(闭包)中使用
$this
。我认为你可以在PHP5.4中这样做。是的,但是如何转换字符串中的构造函数?公共函数slikepoid($dire,$id)-它的定义闭包??公共函数slikepoid($dire,$id)-其定义闭包??