$total=(int)(($str - 1) / $msg) + 1; или $total = intval(($posts - 1) / $msg) + 1; Вопрос: для приведения типов какую функцию лучше использовать (int) или intval. И почему Вы так считаете. P.S. Мануал смотрел.
Результат математической операции всегда числовой. В приведенном примере, кроме целого числа может получиться число с точкой. Приведение к integer выполняет функцию округления вниз, в этом случае для ясности стоит использовать функцию floor() вместо (int) или intval().
по-моему, здесь разницы нет - она была бы, если бы у intval был задан второй необязательный параметр. а визуально вариант с intval мне нравится больше.
$total=(int)(($str - 1) / $msg) + 1; или $total = intval(($posts - 1) / $msg) + 1; При такой конструкции ($str - 1) / $msg в любом случае получится float. В случае с total нужно округлять в большую сторону, чтобы последний элемент в любом случае не потерялся: ceil( ($str - 1) / $msg ). Приведение типов уже и не нужно. Конкретно по вопросу - разницы нет. (int) - это наследие языка си. Дело вкуса. Можно, конечно, тесты прогнать, что быстрее. Добавлено спустя 12 минут 51 секунду: Хм, по тестам (миллион итераций) выигрывает (int), причём в 30 раз. Даже не ожидал такого. Видимо, вызов функции жрёт ресурсы. Но на реальных проектах, это никак не скажется на производительности. (int) $a: 0.14500784873962 0.12900710105896 0.12900805473328 0.12800693511963 0.12800693511963 0.12900805473328 0.12800693511963 0.12900805473328 0.12800693511963 0.12900710105896 0.12800788879395 intval($a) 3.0761759281158 3.1061780452728 3.0661749839783 3.0611760616302 3.0621750354767 3.0641748905182 3.0781760215759 3.0891768932343 3.1921820640564 3.202183008194 3.0891771316528
потому что одно это вызов функции со всем накладными расходами на запись стека, а другое это каст значения в другой тип. плавающее число записано порядком и мантиссой - выдрали нужные байты и получили целочисленное значение. Добавлено спустя 1 минуту 57 секунд: мануал почитай, ну ё моё)))))))) ну как так можно унижаться? в базовой поставке пхп нет глубоких методов отладки времени выполнения. зато можно работать со временем. теперь подумай что будет если я запомню время, выполню сценарий и потом посчитаю дельту между "сейчас" и временем начала? даблять это будет время затраченное на выполнение сценария))))))
мне не унизительно спросить такой глупый вопрос, с чего бы? здесь все в какой-то степени "анонимы", можно и спросить глупость.
кастинг быстрее, потому что даже на моём компе пхп на вызов пустой функции тратит восемь микросекунд. чего-то ты сегодня совсем депрессивишь...