summaryrefslogtreecommitdiffhomepage
path: root/ru-ru/php-ru.html.markdown
diff options
context:
space:
mode:
Diffstat (limited to 'ru-ru/php-ru.html.markdown')
-rw-r--r--ru-ru/php-ru.html.markdown39
1 files changed, 39 insertions, 0 deletions
diff --git a/ru-ru/php-ru.html.markdown b/ru-ru/php-ru.html.markdown
index b5feb105..76b3777c 100644
--- a/ru-ru/php-ru.html.markdown
+++ b/ru-ru/php-ru.html.markdown
@@ -684,6 +684,45 @@ use My\Namespace as SomeOtherNamespace;
$cls = new SomeOtherNamespace\MyClass();
+*//**********************
+* Позднее статическое связывание.
+*
+*/
+
+class ParentClass
+{
+ public static function who()
+ {
+ echo "I'm a " . __CLASS__ . "\n";
+ }
+
+ public static function test()
+ {
+ // self ссылается на класс в котором определен метод.
+ self::who();
+ // static ссылается на класс в котором метод вызван.
+ static::who();
+ }
+}
+
+ParentClass::test();
+/*
+I'm a ParentClass
+I'm a ParentClass
+*/
+
+class ChildClass extends ParentClass
+{
+ public static function who()
+ {
+ echo "But I'm " . __CLASS__ . "\n";
+ }
+}
+
+ChildClass::test();
+/*
+I'm a ParentClass
+But I'm ChildClass
*/
```