После некоторой работы на C и Java я все больше и больше раздражался законами дикого запада в PHP. Я действительно чувствую, что PHP не хватает строгих типов данных. Тот факт, что строка ('0') == (int) 0 == (boolean) false является одним из примеров.
Вы не можете полагаться на то, какой тип данных возвращает функция. Вы не можете заставить аргументы функции иметь определенный тип, что может привести к нечеткому сравнению, что приведет к чему-то неожиданному. Все можно позаботиться, но оно все еще открывается для неожиданных ошибок.
Является ли хорошей или плохой практикой аргументы типа приемы, полученные для метода? И хорошо ли придумать возврат?
IE
public function doo($foo, $bar) {
$foo = (int)$foo;
$bar = (float)$bar;
$result = $bar + $foo;
return (array)$result;
}
Пример довольно глупый, и я его не тестировал, но я думаю, что каждый получает эту идею. Есть ли какая-нибудь причина для того, чтобы PHP-бог мог преобразовать тип данных, как он хочет, помимо того, что люди, которые не знают о типах данных, используют PHP?