Thursday, November 29, 2018

php - Call to a member function on a non-object




So I'm refactoring my code to implement more OOP. I set up a class to hold page attributes.



class PageAtrributes 
{
private $db_connection;
private $page_title;


public function __construct($db_connection)
{
$this->db_connection = $db_connection;
$this->page_title = '';
}

public function get_page_title()
{
return $this->page_title;
}


public function set_page_title($page_title)
{
$this->page_title = $page_title;
}
}


Later on I call the set_page_title() function like so




function page_properties($objPortal) {    
$objPage->set_page_title($myrow['title']);
}


When I do I receive the error message:




Call to a member function set_page_title() on a non-object





So what am I missing?


Answer



It means that $objPage is not an instance of an object. Can we see the code you used to initialize the variable?



As you expect a specific object type, you can also make use of PHPs type-hinting featureDocs to get the error when your logic is violated:



function page_properties(PageAtrributes $objPortal) {    
...
$objPage->set_page_title($myrow['title']);

}


This function will only accept PageAtrributes for the first parameter.


No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...