В чём разница между self и «ClassName»? class A { public static $var = 1; public function hello() { echo self::$var; echo A::$var; } } Чем отличаться тут будут self::$var и A::$var ?
self::$var обращается к статической переменной $var внутри текущего класса A. Таким образом, если в будущем имя класса поменяется, не нужно будет изменять код, использующий self::$var.
A::$var обращается к статической переменной $var в классе A напрямую. Это означает, что если имя класса изменится, то нужно будет вручную изменить все упоминания A::$var на новое имя класса.
Следовательно, использование self::$var более гибкое и безопасное, так как не требует изменения кода в случае изменения имени класса.
self::$var обращается к статической переменной $var внутри текущего класса A. Таким образом, если в будущем имя класса поменяется, не нужно будет изменять код, использующий self::$var.
A::$var обращается к статической переменной $var в классе A напрямую. Это означает, что если имя класса изменится, то нужно будет вручную изменить все упоминания A::$var на новое имя класса.
Следовательно, использование self::$var более гибкое и безопасное, так как не требует изменения кода в случае изменения имени класса.