2012-07-31 77 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