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

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

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

array (s(), s());

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

17 августа 2003 09:55

Улитка (инкогнито)
17 августа 2003, 13:10

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

bolk (bolknote.ru)
17 августа 2003, 13:10, ответ предназначен Улитка

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

Algis (инкогнито)
17 августа 2003, 13:35

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

bolk (bolknote.ru)
17 августа 2003, 13:35, ответ предназначен Algis

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

Algis (инкогнито)
17 августа 2003, 13:45

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

bolk (bolknote.ru)
17 августа 2003, 13:45, ответ предназначен Algis

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

Algis (инкогнито)
17 августа 2003, 13:51

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

bolk (bolknote.ru)
17 августа 2003, 13:51, ответ предназначен Algis

Мало? :))

Algis (инкогнито)
17 августа 2003, 13:59

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

bolk (bolknote.ru)
17 августа 2003, 13:59, ответ предназначен Algis

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

Algis (инкогнито)
17 августа 2003, 14:03

ну ты быстр :)

bolk (bolknote.ru)
17 августа 2003, 14:03, ответ предназначен Algis

Ну дык :)

derini (инкогнито)
18 августа 2003, 00:45

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

bolk (bolknote.ru)
18 августа 2003, 00:45, ответ предназначен derini

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

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)