2012-07-31 104 views
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行

对象方面,我尝试过:

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

但没有运气:(

+0

在PHP 5.3中,您不能在匿名函数(闭包)中使用'$ this'。我认为你可以在PHP 5.4中做到这一点。 – 2012-07-31 20:00:14

+0

是的,但如何转换字符串中的构造函数? – 2012-07-31 20:02:41

回答

5

你应该能够使用closure来实现:

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

现在,$id应该是匿名函数的范围内,所以你应该能够在元素值反对进行比较。

+0

公共函数slikepoid($ dire,$ id) - 它的定义关闭? – voodoo417 2012-07-31 20:18:12

+0

对不起...我需要去睡觉 – voodoo417 2012-07-31 20:19:27