Onde está a diferença entre self e $ this-> em uma classe PHP ou método PHP?

Onde está a diferença entreself e$this-> em uma classe PHP ou método PHP?

Exemplo:

Eu vi esse código recentemente.

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;
}

Mas eu lembro disso$this-> refere-se à instância atual (objeto) de uma classe (também pode estar errada). No entanto, qual a diferença?

questionAnswers(6)

yourAnswerToTheQuestion