Mysql
 sql >> база данни >  >> RDS >> Mysql

Извикване на членска функция на не-обект - PHP

$movie->getByPerma($perma,$language); 

връща нещо, което не е обект.

Така че аз бих

print_r($movie)

на ред 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);

Не знам дали помогнах или направих всичко по-объркващо :S, но не се колебайте да ми задавате въпроси :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Дизайн на база данни:обекти с различни атрибути

  2. Твърде много връзки, използващи Hibernate и mysql

  3. Как да експортирате база данни от Amazon RDS MySQL екземпляр към локален екземпляр?

  4. Изтегляне на данни в csv файл от MySQL с помощта на PHP

  5. MYSQL Съкратена неправилна грешка INTEGER стойност