Занимательная пыха #1. Echo vs Print. Switch vs if, is_set vs empty vs is_null, For vs While
Ожидает приглашения
Пыха — php
В мире пыхи все юзают print, echo, switch, is_set и т д операторы без задний мысли, каждый по своему. Это происходит потому что мало кто из вас создавал проект с постоянным онлайном 1000-10000. Поэтому мало кто задумывается о том, что можно уменьшить нагрузку на сервер и увеличить скорость выполнения кода на 1-10ms. И всё же, я вам расскажу немного о данных функциях.
isset vs empty vs is_null:
isset — Определяет, если переменная определена и не является NULL
empty — Определяет, является ли переменная пустой
is_null — Определяет, является ли переменная NULL
Вызов 2'000x
isSet() with var that was setTotal time: 1219 µs
empty() with var that was setTotal time: 219 µs
isSet() with var that was *not* setTotal time: 194 µs
empty() with var that was *not* setTotal time: 195 µs
isSet() with array-var that was setTotal time: 1237 µs
empty() with array-var that was setTotal time: 213 µs
isSet() with array-var that was *not* setTotal time: 195 µs
empty() with array-var that was *not* setTotal time: 196 µs
echo vs print:
Вывод 1'000x
echo ''Total time: 109 µs
print ''Total time: 116 µs
echo 'aaaaaaaaaaaaaaaaaaaaaaaaaaaa'Total time: 220 µs
print 'aaaaaaaaaaaaaaaaaaaaaaaaaaaa'Total time: 221 µs
echo 'aaaaaaa'.'aaaaaaa'.'aaaaaaa'.'aaaaaaa'Total time: 641 µs
echo 'aaaaaaa','aaaaaaa','aaaaaaa','aaaaaaa'Total time: 539 µs
print 'aaaaaaa'.'aaaaaaa'.'aaaaaaa'.'aaaaaaa'Total time: 667 µs
$a = 'aaaaaaa';
echo 'aaaaaaa'.$a.'aaaaaaa'.$aTotal time: 831 µs
$a = 'aaaaaaa';
echo 'aaaaaaa',$a,'aaaaaaa',$aTotal time: 724 µs
$a = 'aaaaaaa';
print 'aaaaaaa'.$a.'aaaaaaa'.$aTotal time: 847 µs
$a = 'aaaaaaa';
echo $a.$a.$a.$aTotal time: 828 µs
$a = 'aaaaaaa';
echo $a,$a,$a,$aTotal time: 770 µs
$a = 'aaaaaaa';
print $a,$a,$a,$aTotal time: 867 µs
Двойные кавычки vs одиночные кавычки
Вызвано 1'000x
single (') quotes. Just an empty string: $tmp[] = '';Total time: 765 µs
double (") quotes. Just an empty string: $tmp[] = "";Total time: 334 µs
single (') quotes. 20 bytes Text: $tmp[] = 'aaaaaaaaaaaaaaaaaaaa';Total time: 521 µs
double (") quotes. 20 bytes Text: $tmp[] = «aaaaaaaaaaaaaaaaaaaa»;Total time: 385 µs
single (') quotes. 20 bytes Text and 3x a $: $tmp[] = 'aa $ aaaa $ aaaa $ a';Total time: 383 µs
double (") quotes. 20 bytes Text and 3x a $: $tmp[] = «aa $ aaaa $ aaaa $ a»;Total time: 384 µs
double (") quotes. 20 bytes Text and 3x a \$: $tmp[] = «aa \$ aaaa \$ aaaa \$ a»;Total time: 394 µs
For vs while
for($i = 0; $i < 1000000; ++$i);Total time: 82963 µs
$i = 0; while($i < 1000000) ++$i;Total time: 77606 µs
switch vs if
if and elseif (using ==)Total time: 199 µs
if, elseif and else (using ==)Total time: 198 µs
if and elseif (using ===)Total time: 164 µs
if, elseif and else (using ===)Total time: 166 µs
switch / caseTotal time: 216 µs
switch / case / defaultTotal time: 230 µs
Вот такие вот цифры существуют, и они реальны. Скорее всего 80% из вас призадумаются: «Мда, надо чуть проще юзать свой код будет.» Я же(Неучь) почему то всегда юзнал — echo, doble("), empy и if int === int. Только по тому что где когда то я это увидел или услышал об этом.