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