Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Для чего C в 70-м году создавался помните?Ну меня тогда и на свете-то не было, но судя по рассказам - создавался C для написания низкоуровневых программ (в первую очеред операционок). И некоторые "элегантные" решения аукаются до сих пор и порождают лишь слегка меньше дыр, чем галлюцинация под названием PHP. Но там хотя бы ясно за что боролись: все проверки (обязательные в безопасных языках - Ada или Java) в C отсутствуют для достижения максимальной эффективности.
Согласны ли вы с тем, что он за эти годы прошел некоторый путь эволюции?Всё течёт, всё изменяется. Но 90% без в программах на С/C++ (да, включая C++) - последствия родимых пятен из 70х...
Почему же пыху вы в этом отказываете?Почему отказываю? Кое-какие грабли удалось ликвидировать - в PHP5 объекты это таки объекты, а не пародия как PHP4. Но главное - не лезущая ни в какие ворота работа с динамическими типами - осталось неизменным. Зачем такое количество граблей в медленном интерпретируемом языке, каковым является PHP?
function(integer $a)
, равно как и function(array $a)
, вот только первый вариант выпадет с ошибкой, которую и надо поймать. Строка ошибки будет выглядеть примерно так: «……… instanse of integer, integer given…». На это и проверяет написанная мною регулярка. Вот вам и тайпхинтинг.
Особенности условных конструкции со строками в PHP