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;'-'; 

しかし、運が悪い:(

4

1 に答える 1

5

これを達成するには、クロージャーを使用できるはずです。

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

これ$idで、無名関数のスコープ内にある必要があるため、要素の値をそれと比較できるはずです。

于 2012-07-31T20:03:47.527 に答える