There are some cases when you will find that $this is not available inside a class. When the object of a class is defined immediately the $this becomes available. But when a class method is directly called through the class name then $this is not available.
See the code segment below:
See the code segment below:
class User
{
public function checkClass()
{
$msg = "\$this is not defined.\n";
if(isset($this))
{
$msg = "\$this is defined (" . get_class($this) . ")\n";
}
echo $msg;
}
}
Now, for the above class if checkClass method is called by instantiating the object then $this becomes available.
$userObject = new User(); $userObject->checkClass();But if the above class is called using the class name like below then the $this is not available inside the class.
User::checkClass();
Comments
Post a Comment