Ответ
Misha v.3 31.12.2006 13:50
- вариант "как есть" постоянно меняется. так что если бы выбирали его, то распределение ответов было-бы иным (хотя в голосовалке ест баг, из-за этоо некоторые проголосовали несколько раз, поправлю - удалю дубликаты)
- мне тоже нравится предлагаемый вариант (ну... почти... т.к. я считаю что вы не правы по поводу string и $hTest3. в первом случае считаю что def $sText не должен быть true в случае $sText[]. по поводу $hTest3: там _есть_ элемент, который достается с помощью foreach например, и не определено именно его значение, а не хеш). однако есть "небольшой" ньюанс в виде обратной совместимости существующего кода. разговор только о bool велся потому, что тип bool появился недавно, и его изменение не привело бы к необходимости править кучу кода. кроме того лично меня такое поведение не напрягает (я просто знаю у какого объекта как действует def, хотя для новичков это вероятно выглядит очень непоследовательным). в принципе можно подумать над добавлением нового подобного аналогичного операнда, действующего описанным выше образом: ^if(init $sVar){}, ^if(declared $sVar){}, ^if(exist $sVar){}, ^if($sVar is "declared"){}, ...