Загадка про PHP. Номер 7.
Загадка на static и unset. Дано:
function s()
{
static $a = 1;
echo $a++;
unset ($a);
}
array (s(), s());
Что будет на экране?
Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.
Опять пример из документации на php, раздел unset.
Выведет 1, 2.
Комментарий для Улитка:
Да, оттуда. В своё время задумался, попробовал, почитал документацию.
при следующем вызове функции PHP «забывает» что был unset() :))
Комментарий для Algis:
Он не забывает. :) Просто такова природа статик — где-то в памяти есть место, где хранится «статическое» значение, а $a — всего лишь ссылка на него, от того что она удаляется (она так же удаляется за пределами функции), ничего страшного не происходит.
кстати, СПАСИБО за загадки, с некоторыми я еще не сталкивался, думаю эти упражнения поможет многим избежать ошыбок в будущем
Комментарий для Algis:
Поэтому я их и выкладываю.
почаще да побольше бы… :)
Комментарий для Algis:
Мало? :))
ага,
оччень люблю этот язык
Комментарий для Algis:
Уже есть задача номер E :)
ну ты быстр :)
Комментарий для Algis:
Ну дык :)
может ты оформишь эти все загадки ввиде заметки на сайте чтобы было
легче искать и людей направлять :)
Комментарий для derini:
Ок, оформлю :)