$movie->getByPerma($perma,$language);
オブジェクトではないものを返しています。
だから私は
print_r($movie)
2行目で、私が得ているものを確認してください。
2番目の奇妙なことは次のとおりです:
$movie['rating'] = $movie->getRating($movie['id']);
左側では$movieを配列として使用しており、右側ではそれをオブジェクトとして使用しています。次に、$movie['id']を配列として使用するパラメーターを送信しました。
だから:
配列を取得している場合、配列は関数を持つことができません。関数はクラスの外部にある必要があり、次のように呼び出されます。
getRating($movie['id'])
の代わりに
$movie->getRating($movie['id']).
オブジェクトを取得していて、そのオブジェクトが関数を実装している場合
getRating($movie_id)
その場合、オブジェクトのプロパティにアクセスする方法は次のとおりです。
$movie->rating and $movie->id
プロパティはパブリックとして宣言されていると思います。ただし、これは正しい方法ではありません...プロパティはプライベートである必要があり、次のようなオブジェクトプロパティのゲッターとセッターを実装する必要があります:
private $rating;
public function get_rating()
{
return $this->rating;
}
この場合、評価を取得するには、
を使用します $movie->get_rating();
そして、評価に値を割り当てるには、実装します
public function set_rating($r)
{
$this->rating=$r;
}
そして、次のように値を割り当てます:
$movie->set_rating($some_rating);
私がすべてを助けたり、もっと混乱させたりした場合は、Dunno:Sですが、遠慮なく質問してください:)