Scalar type hinting в PHP 5.4.X или 6.X

Ну и раз уж я решил перед сном пописáть о PHP, то продолжу. Ещё новость из мира PHP — в PHP будет scalar type hinting. Илья Альшанетский добился включения своего патча в код.

Сейчас type hinting в PHP есть, я могу указать явно, что параметр будет объектом определённого класса или массивом:
function test1(MyClass $var) {}

function test2(array $var) {}
Скоро можно будет указать, что передаваемый аргумент должен быть скаляром. Жаль только, что появилась только возможность указать определённый тип. Если «object» указать можно, то «scalar», к сожалению, нет. Это странно. Придётся указывать явно:
function test3(string $var) {}
Что поможет снизить количество ошибок в отдельных случаях, но как быть, если мне такая жёсткость ни к чему, если я хочу оставить возможность преобразования типов, там где это сделано хорошо (преобразование типа «array» в «string» в PHP сделано бессмысленно, посмотрите на Perl, там это имеет смысл)? Да и как мне указать, что мне всё равно — придёт int или float? Видимо, только явным приведением типа при вызове, а про возврат значения по ссылке, в этом случае, придётся забыть.

В отдельных случаях, хотелось бы, чтобы передав объект в такой типизированный параметр, у объекта дёрнулся метод __toString, а то и __toNumber, если указано, что должен быть передан числовой скаляр.

Надеюсь, не одному мне этого хочется и Илья продолжит работу над патчем.

Добавлено через несколько минут: прочитал комментарии, оказывается идут дискуссии о добавлении ключевых слов «scalar» и «numeric». Кроме того, Илья рассуждает и о преобразованиях типов в рамках type hinting. Ура.
9 июня 2010 02:00

fantaseour.livejournal.com (fantaseour.livejournal.com)
9 июня 2010, 09:26

дерганье __toString, если заявлено function f(string $x);
очень хочется, да.

bolk (bolknote.ru)
9 июня 2010, 11:15, ответ предназначен fantaseour.livejournal.com:

Жаль __toNumber нет. Иногда пригодилось бы.

jimidini (jimidini.ya.ru)
9 июня 2010, 13:40

не торопись. ещё откатить могут. там есть много сторонников альтернативного подхода и голосования ещё не было

bolk (bolknote.ru)
9 июня 2010, 13:50, ответ предназначен jimidini (jimidini.ya.ru):

Ммм… жаль будет, если откатят. А какой предлагается альтернативный подход?

jimidini (jimidini.ya.ru)
9 июня 2010, 14:04, ответ предназначен bolk (bolknote.ru):

вот альтернативный: http://wiki.php.net/rfc/typecheckingstrictandweak

bolk (bolknote.ru)
9 июня 2010, 14:12, ответ предназначен jimidini (jimidini.ya.ru):

Этот вариант мне ближе.

jimidini (jimidini.ya.ru)
9 июня 2010, 14:17, ответ предназначен bolk (bolknote.ru):

интереснее, что в php-trunk добавили http://wiki.php.net/rfc/functionarraydereferencing
вот это действительно праздник

p.s. не знаю видел ты или нет, я завёл англоязычный твиттер технической направленности http://twitter.com/jimi_dini

bolk (bolknote.ru)
9 июня 2010, 14:28, ответ предназначен jimidini (jimidini.ya.ru):

интереснее, что в php-trunk добавили http://wiki.php.net/rfc/functionarraydereferencing
вот это действительно праздник
О!!!! Ура :)
p.s. не знаю видел ты или нет, я завёл англоязычный твиттер технической направленности http://twitter.com/jimi_dini
Я твиттером не пользуюсь, но зафолловил.

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

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

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