|
|
|
| Еще в процессе изучения ПХП.. непонятна одна вещь.. понимаю, что она легкая, но не понимаю куда копать..
class One {
static $foo;
}
class Two extends One { }
class Three extends One { }
One::$foo = 1;
Two::$foo = 2;
Three::$foo = 3;
echo One::$foo;
echo Two::$foo;
echo Three::$foo;
Почему результат будет 3 тройки а не 3 единицы ведь класс Two и класс Three наследуют первый класс, который равен 1? | |
|
|
|
|
|
|
|
для: Новинький
(20.06.2009 в 05:03)
| | Цитата из книги: http://www.bhv.ru/books/book.php?id=183698
"...изменение содержимого статической переменной в одном объекте отражается на значении данной переменной во всех объектах." | |
|
|
|
|
|
|
|
для: dyadya
(20.06.2009 в 09:26)
| | да, но почему учитывается именно последняя переменная а не первая, которую унаследовали? Потому, что если в данно примере поменять местами Two и Three
One::$foo = 1;
Three::$foo = 3;
Two::$foo = 2;
То результат будет: 222.
То есть почему учитывается именно последняя переменная, а не первая, от которой произошло наследование? | |
|
|
|
|
|
|
|
для: Новинький
(20.06.2009 в 11:22)
| | Учитывается последнее изменение переменной (переменная статическая) | |
|
|
|
|
автор: ы (20.06.2009 в 15:29) |
|
|
для: dyadya
(20.06.2009 в 11:54)
| | да именна так да | |
|
|
|
|
|
|
|
для: dyadya
(20.06.2009 в 11:54)
| | Спасибо! | |
|
|
|