Главная » PHP - FAQ » Основы PHP8 » static и final
16 0  

static и final

static

Ключевое слово static определяет статические свойства и статические методы.

Получить доступ к статическому свойству/методу класса можно без создания объекта этого класса.

Получить доступ к статическому свойству или методу можно при помощи оператора разрешения области видимости :: между именем класса и именем свойства/метода.

<?php
class myClass {
   static $myStaticProperty = 42;
}

echo myClass::$myStaticProperty;
?>

Ключевое слово self необходимо для получения доступа к статическому свойству из статического метода в определении класса.

<?php
class myClass {
    static $myProperty = 42;
    static function myMethod() {
        echo self::$myProperty;
    }
}

myClass::myMethod();
?>

Объекты класса не могут получить доступ к статическим свойствам в классе, но могут получить доступ к методам.

В PHP ключевое слово final определяет методы, которые нельзя переопределить в дочерних классах. Классы, которые определены как окончательные (final), не могут быть наследованы.


В примере ниже показано, что final метод не может быть переопределен в дочернем классе:

<?php
class myClass {
    final function myFunction() {
        echo "Parent";
    }
}
// ERROR because a final method cannot be overridden in child classes.
class myClass2 extends myClass {
    function myFunction() {
        echo "Child";
    }
}
?>


Следующий код демонстрирует, что final класс не может быть наследован:

<?php
final class myFinalClass {
}

// ERROR because a final class cannot be inherited.
class myClass extends myFinalClass {
}
?>
В отличие от классов и методов свойства не могут быть помечены как final.

Оставить свой комментарий:

Опыт в веб разработке:

2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
1979
2021