Приведение типов PHP - Хорошо или плохо?

После некоторой работы с C и Java меня все больше и больше раздражают законы дикого запада в PHP. Что мне действительно не хватает в PHP, так это строгих типов данных. Тот факт, что string ('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?

12
задан Anders 12 September 2010 в 15:05
поделиться