Where’s the difference between self and $this-> in a PHP class or PHP method?
Example:
I’ve seen this code recently.
public static function getInstance() {
if (!self::$instance) {
self::$instance = new PDO("mysql:host='localhost';dbname='animals'", 'username', 'password');;
self::$instance-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
return self::$instance;
}
But I remember that $this-> refers to the current instance (object) of a class (might also be wrong). However, what’s the difference?
$thisrefers to the instance of the class, that is correct. However, there is also something called static state, which is the same for all instances of that class.self::is the accessor for those attributes and functions.Also, you cannot normally access an instance member from a static method. Meaning, you cannot do
because the static method would not know which instance you are referring to.