Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Пишите код так, чтобы было все равно.
switch (gettype($email)) {
case 'string':
break;
case 'integer':
$email = new Email($email)->getEmail();
break;
case 'array':
// несколько email передано. где же Composite?
break;
case 'object':
if ($email instanceof Email) {
$email = $email->getEmail();
}
...
}
Значит она не вернет email.
А кто сравнивал затраты на написание аннотаций для _всех_ функций в проекте по сравнению с тем, чтобы заглянуть код в редкие моменты, когда нужно такие мелочи прояснять?
в большинстве контекстов нет разницы между 1 и «1».
А что возвращает strpos когда оно ничего не находит?
Вы каждый раз в мануал лезете, чтобы это узнать?
Что возвращать, кидать ли исключение — это договоренность, которую можно описать 1 раз...
Плюс еще время при каждом изменении функции.
Плюс загромождение кода этим мусором — код распухает.
Как вы это считали?
требовалась документация — нате вам документацию
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.
В python вон pycharm вообще по рукам бьет за ловлю главного Exception)Классная фишка, блин!
switch (gettype($email))
<?php
for($i = 0; $i < 1000; $i++) {
echo var_dump($_SERVER);
}
HipHop VM: разведка боем под Debian 7 + Nginx + Symfony2