Search
Write a publication
Pull to refresh

Занимательная пыха #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. Только по тому что где когда то я это увидел или услышал об этом.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.