@@ -10,6 +10,8 @@ class Room
10
10
*/
11
11
public static $ location = 'Внутри дома. ' ;
12
12
13
+ public $ color = 'red ' ;
14
+
13
15
/**
14
16
* @param $location
15
17
*/
@@ -19,6 +21,21 @@ public static function changeLocation($location)
19
21
// необходимо использовать ключевое слово "self"
20
22
self ::$ location = $ location ;
21
23
}
24
+
25
+ public function changeColor ($ color )
26
+ {
27
+ $ this ->color = $ color ;
28
+ }
29
+
30
+ public static function staticChangeLocation ($ location )
31
+ {
32
+ // Для того, чтоб обратиться к статическому свойству дочернего класса
33
+ // используют ключевое слово static
34
+ // эта возможность появилась в php 5.3
35
+ // в нашем случае нет никакого отличия от self.
36
+ // Если нам понадобится его уникальный функционал, мы к этому еще вернемся.
37
+ static ::$ location = $ location ;
38
+ }
22
39
}
23
40
24
41
// Не нужно создавать объект, чтобы обратиться к статическому свойству.
@@ -31,3 +48,17 @@ public static function changeLocation($location)
31
48
// Сейчас мы вновь выведем статическое свойство, измененное чуть выше.
32
49
echo '<br><br>А это измененное свойство: ' ;
33
50
echo Room::$ location ;
51
+
52
+ // Мы так же можем изменить статическое свойство,
53
+ // непосредственно присвоив ему новое значение:
54
+ Room::$ location = 'На улице. ' ;
55
+ // И проверим, что получилось:
56
+ echo '<br><br>А теперь наша комната находится: ' ;
57
+ echo Room::$ location ;
58
+
59
+ // Попробуем создать объект, и вызвать его статическое свойство
60
+ // обратим внимание на синтаксис.
61
+ $ object = new Room ();
62
+ echo '<br><br>А это свойство объекта: ' ;
63
+ echo $ object ::$ location ;
64
+
0 commit comments