Как стать автором
Обновить

Занимательная пыха #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. Только по тому что где когда то я это увидел или услышал об этом.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.