$movie->getByPerma($perma,$language);
retourneert iets dat geen object is.
Dus ik zou
print_r($movie)
op lijn 2 en kijk wat ik krijg.
Het tweede rare ding zit in:
$movie['rating'] = $movie->getRating($movie['id']);
Aan de linkerkant gebruik je $movie als een array en aan de rechterkant gebruik je het als een object en dan stuur je opnieuw de parameter die je gebruikt $movie['id'] als een array.
Dus:
Als je een array krijgt, kan de array geen functies hebben, de functie moet buiten een klasse staan en zal als volgt worden aangeroepen:
getRating($movie['id'])
in plaats van
$movie->getRating($movie['id']).
Als u een object krijgt en het object implementeert de functie
getRating($movie_id)
dan is de manier om toegang te krijgen tot de eigenschappen van het object:
$movie->rating and $movie->id
Ik neem aan dat de eigendommen openbaar zijn verklaard. Dit is echter niet de juiste manier om het te doen... De eigenschappen moeten privé zijn en je moet getters en setters voor de eigenschappen van het object als volgt implementeren:
private $rating;
public function get_rating()
{
return $this->rating;
}
Gebruik in dit geval om de beoordeling te krijgen
$movie->get_rating();
En om een waarde aan de beoordeling toe te kennen, implementeert u
public function set_rating($r)
{
$this->rating=$r;
}
En wijs de waarde als volgt toe:
$movie->set_rating($some_rating);
Ik weet niet of ik heb geholpen of alles verwarrender heb gemaakt :S maar stel me gerust vragen :)