Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Легкий вопрос по static

Сообщения:  [1-6] 

 
 автор: Новинький   (20.06.2009 в 23:45)   письмо автору
 
   для: dyadya   (20.06.2009 в 11:54)
 

Спасибо!

  Ответить  
 
 автор: ы   (20.06.2009 в 15:29)
 
   для: dyadya   (20.06.2009 в 11:54)
 

да именна так да

  Ответить  
 
 автор: dyadya   (20.06.2009 в 11:54)   письмо автору
 
   для: Новинький   (20.06.2009 в 11:22)
 

Учитывается последнее изменение переменной (переменная статическая)

  Ответить  
 
 автор: Новинький   (20.06.2009 в 11:22)   письмо автору
 
   для: dyadya   (20.06.2009 в 09:26)
 

да, но почему учитывается именно последняя переменная а не первая, которую унаследовали? Потому, что если в данно примере поменять местами Two и Three

One::$foo = 1;
Three::$foo = 3;
Two::$foo = 2;

То результат будет: 222.

То есть почему учитывается именно последняя переменная, а не первая, от которой произошло наследование?

  Ответить  
 
 автор: dyadya   (20.06.2009 в 09:26)   письмо автору
 
   для: Новинький   (20.06.2009 в 05:03)
 

Цитата из книги: http://www.bhv.ru/books/book.php?id=183698

"...изменение содержимого статической переменной в одном объекте отражается на значении данной переменной во всех объектах."

  Ответить  
 
 автор: Новинький   (20.06.2009 в 05:03)   письмо автору
 
 

Еще в процессе изучения ПХП.. непонятна одна вещь.. понимаю, что она легкая, но не понимаю куда копать..

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?

  Ответить  

Сообщения:  [1-6] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования