Есть ли какая-то особая разница между strval и приведением к строке наподобие (string) $ var

Кажется, что нет никакой разницы между этими двумя методами, так как var_dump возвращает один и тот же результат, используя оба метода.

Простой пример:

// integer
$var = 3;

Методы и результаты:

var_dump($var);         // ouput: int(3)
var_dump((string) $var);  // string(1) "3"var_dump(strval($var));  // string(1) "3"

Как вы видите, случаи 2 и 3 возвращают строку как исключенную.

Как вы думаете?

0

Решение

Самым большим отличием будет тот факт, что функция (любая функция) несет некоторые накладные расходы. Это незначительная сумма, поэтому, по большей части, эта дискуссия носит более академический характер, чем что-либо еще. Ссылка Гертона доказывает, что он медленнее, но вы вряд ли заметите этот пробел в обычном исполнении, потому что он запустил эту функцию 1 миллион раз чтобы получить Разрыв 0,7 с (и он использовал PHP 5.2, в то время как PHP 7 мог бы сделать этот разрыв еще меньше). Рассмотрите эту статью о времени выполнения функции

Второй совет — PHP быстрый, поверьте мне. То, что вы просите сделать, то, как он выполняет свою работу и инструменты, которые он представляет для вас: это быстро, эффективно, надежно. Существует не так много возможностей для оптимизации PHP-скриптов, по крайней мере, не так, как если бы вы использовали язык более низкого уровня, такой как C. Основной трюк заключается в оптимизации того, что повторяется: циклы. Если вы используете профилировщик, показывающий вам горячий путь вашего скрипта, вы обнаружите, что он может быть расположен в циклах. Это то же самое, когда мы, как участники, оптимизируем сам PHP: мы не будем беспокоиться об оптимизации части кода, которую сработают несколько пользователей, но лучше оптимизируем горячий путь: доступ к переменным, вызовы функций движка и т. Д … Потому что здесь очень маленькая заработанная микросекунда преобразуется в конечные миллисекунды или даже секунды, поскольку такой код выполняется тонны раз (как правило, с использованием циклов). За исключением foreach (), в PHP циклы одинаковы и приводят к одному и тому же OPCode. Превращение PHP-цикла while в цикл for бесполезно и глупо. Еще раз: профилирование скажет вам это.

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector