Есть ли разница между приведением типов и использованием функции для преобразования переменной в некоторый тип?
(float)$var
VS. floatval($var)
Если есть, когда один из них должен использоваться вместо другого?
Нет никакой разницы в результирующем значении, просто:
(float)
– это язык и очень быстрый floatval()
несет накладные расходы на вызов функции (минимальный, но тем не менее …) floatval()
как функция может использоваться способами, которые (float)
не могут, например array_map('floatval', $foo)
Последнее, по моему мнению, является основной причиной существования floatval
: поэтому каждая операция кастинга имеет эквивалентную функцию, которая может быть полезна при некоторых обстоятельствах.