sql >> Database >  >> RDS >> Mysql

Oproep naar een lidfunctie op een niet-object - PHP

$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 :)



  1. MySQL:hoe externe verbinding met mysql toe te staan?

  2. Een SELECT-query uitvoeren met een Ansible-taak

  3. Waar haalt mysql_ssl_rsa_setup OpenSSL-bestanden vandaan?

  4. MacOSX homebrew mysql root-wachtwoord