Загадка про PHP. Номер 7.

Загадка на static и unset. Дано:

function s()
{
static $a = 1;
echo $a++;
unset ($a);
}

array (s(), s());

Что будет на экране?

Поделиться
Отправить
14 комментариев
Улитка

Опять пример из документации на php, раздел unset.
Выведет 1, 2.

Евгений Степанищев (bolknote.ru)

Комментарий для Улитка:

Да, оттуда. В своё время задумался, попробовал, почитал документацию.

Algis

при следующем вызове функции PHP «забывает» что был unset() :))

Евгений Степанищев (bolknote.ru)

Комментарий для Algis:

Он не забывает. :) Просто такова природа статик — где-то в памяти есть место, где хранится «статическое» значение, а $a — всего лишь ссылка на него, от того что она удаляется (она так же удаляется за пределами функции), ничего страшного не происходит.

Algis

кстати, СПАСИБО за загадки, с некоторыми я еще не сталкивался, думаю эти упражнения поможет многим избежать ошыбок в будущем

Евгений Степанищев (bolknote.ru)

Комментарий для Algis:

Поэтому я их и выкладываю.

Algis

почаще да побольше бы… :)

Евгений Степанищев (bolknote.ru)

Комментарий для Algis:

Мало? :))

Algis

ага,
оччень люблю этот язык

Евгений Степанищев (bolknote.ru)

Комментарий для Algis:

Уже есть задача номер E :)

Algis

ну ты быстр :)

Евгений Степанищев (bolknote.ru)

Комментарий для Algis:

Ну дык :)

derini

может ты оформишь эти все загадки ввиде заметки на сайте чтобы было
легче искать и людей направлять :)

Евгений Степанищев (bolknote.ru)

Комментарий для derini:

Ок, оформлю :)

Популярное