Using $ this when not in object context - I am using the latest php and mysql
This is user.php:
include("databse.php");//retrieving successfully first name and lastname from databse file into user.php
class user
{
public $first_name;
public $last_name;
public static function full_name()
{
if(isset($this->first_name) && isset($this->last_name))
{
return $this->first_name . " " . $this->last_name;
}
else
{
return "";
}
}
}
Other php files, index.php:
include(databse.php);
include(user.php);
$record = user::find_by_id(1);
$object = new user();
$object->id = $record['id'];
$object->username = $record['username'];
$object->password = $record['password'];
$object->first_name = $record['first_name'];
$object->last_name = $record['last_name'];
// echo $object->full_name();
echo $object->id;// successfully print the id
echo $object->username;//success fully print the username
echo->$object->full_name();//**ERROR:Using $this when not in object context**
?>
+2
a source to share
3 answers
Make it full_name
non-static :
public function full_name() {}
You cannot access instance variables from a static method, but that is exactly what you are trying to do.
If you use self
instead $this
, you also need to declare statics $first_name
and $last_name
.
I don't even understand why you are declaring this method as static
in the first place. It's an instance method by all means.
+3
a source to share