Friday, 22 September 2017

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

casting - Why wasn't Tobey Maguire in The Amazing Spider-Man? - Movies & TV

In the Spider-Man franchise, Tobey Maguire is an outstanding performer as a Spider-Man and also reprised his role in the sequels Spider-Man...