Как вы пишете код.

Статус
В этой теме нельзя размещать новые ответы.

Beckie

Новичок
Как вы пишете код.

Просто любопытно, как люди пишут код.

Из-за чтения всех этих хабрхабровских заумных постов, мой код постепенно превращается в "мясо".

Вот и задался вопросом, а не экономия на спичках ли вся эта затея с конкатенацией, экономией оператора echo, использованием одинарной ковычки, если нет переменных внутри, чтобы PHP не искал их там и т.д.

Что сами думаете по этому поводу?

По мне так лучше писать так
PHP:
echo "string $var string";
,

ну или на крайняк так
PHP:
echo 'string' . $var . 'string';
Сейчас я пишу так
PHP:
 $e = 'string';$e .= $var; $e .= 'string';echo $e;unset($e);
Сразу видно, как засирается код и как его трудно потом читать.

В цикле удобно добавлять все в одну переменную и потом её выводить одним echo. С этим не поспоришь помоему, а вот остальное. :rolleyes:
 

zerkms

TDD infected
Команда форума
Из-за чтения всех этих хабрхабровских заумных постов
потому что большинство постов на тему перформанса там идиотские. можно почитать комментарии и выводы сделать самому.

-~{}~ 21.10.09 22:49:

кстати через 2 страницы тупого мусоленья, что быстрее " или ', echo или print - все модеры потом будут вспоминать, что надо было тему закрыть ещё когда зерыч об этом говорил... :)
 

Beckie

Новичок
Автор оригинала: triumvirat
на сколько именно?
В этом то и дело.

Вот например кусок кода:

PHP:
	  if($other[0] > 0){
	  $c .= '<div id="m5"><a id="other" href="';
		  $c .= DOMAIN;
		  $c .= $p1;$c .= '/';
		  $c .= $p2;$c .= '/';
		  if(!empty($p3)) {$c .= $p3;$c .= '/';}
		  $c .= 'misc-type/';
	  $c .= '" alt=""><span id="buyspan">';
			$c .= M::$l[104];
	  $c .= '</span><span class="count">[';
	  $c .= $other[0];
	  $c .= ']</span></a></div>';
	  }
echo $c;
unset($c);
А так:

PHP:
if($other[0] > 0){	  
	echo "<div id='m5'>
			<a id='other' href='" . DOMAIN . "$p1/$p2/"; if(!empty($p3)) { echo "$p3/"; } echo   "' alt=''>
				<span id='buyspan'>"   . M::$l[104] . "</span>
				<span class='count'>[$other[0]]</span>
			</a>
	      </div>";
}
В общем примерно так.

Вот если писать код примерно размером в 10-20kb~ в первом варианте и во втором варианте.
 

nerezus

Вселенский отказник
> А Вы сравните скорость работы: 2-я на порядок быстрее.
Бла бла бла бла.
 

zerkms

TDD infected
Команда форума
Beckie
ты кстати так и не показал разницу на порядок.
 

Beckie

Новичок
Автор оригинала: zerkms
потому что большинство постов на тему перформанса там идиотские. можно почитать комментарии и выводы сделать самому.

-~{}~ 21.10.09 22:49:

кстати через 2 страницы тупого мусоленья, что быстрее " или ', echo или print - все модеры потом будут вспоминать, что надо было тему закрыть ещё когда зерыч об этом говорил... :)
Читаю читаю, там жесткая критика, но и срача хватает. :D

-~{}~ 21.10.09 16:11:

Автор оригинала: zerkms
Beckie
ты кстати так и не показал разницу на порядок.
Я? :rolleyes:
Это Ewg там писал. :)
 

zerkms

TDD infected
Команда форума
Beckie
и что? а ты так и не показал разницу...
 

Beckie

Новичок
Ну я от вас жду ответов, я как бы новичек. :)

Кстати говоря, сколько времени тратится на поиск переменных в кавычках? :D

Помоему лучше не забивать голову всем этим и писать максимально читабельный код, как для верстальщиков, так и для себя.

Просто хотел у вас спросить, как вы пишете код, наверняка прошли через это и не раз.

Смотри, партизаны. Засели и молчат. Колитесь давайте. :)
 

zerkms

TDD infected
Команда форума
Помоему лучше не забивать голову всем этим и писать максимально читабельный код, как для верстальщиков, так и для себя.
ещё один всё понял (с)
самая верная мысль во всём топике.
 

dr-sm

Новичок
Автор оригинала: Beckie
В этом то и дело.

Вот например кусок кода:

PHP:
	  if($other[0] > 0){
	  $c .= '<div id="m5"><a id="other" href="';
		  $c .= DOMAIN;
		  $c .= $p1;$c .= '/';
		  $c .= $p2;$c .= '/';
		  if(!empty($p3)) {$c .= $p3;$c .= '/';}
		  $c .= 'misc-type/';
	  $c .= '" alt=""><span id="buyspan">';
			$c .= M::$l[104];
	  $c .= '</span><span class="count">[';
	  $c .= $other[0];
	  $c .= ']</span></a></div>';
	  }
echo $c;
unset($c);
А так:

PHP:
if($other[0] > 0){	  
	echo "<div id='m5'>
			<a id='other' href='" . DOMAIN . "$p1/$p2/"; if(!empty($p3)) { echo "$p3/"; } echo   "' alt=''>
				<span id='buyspan'>"   . M::$l[104] . "</span>
				<span class='count'>[$other[0]]</span>
			</a>
	      </div>";
}
В общем примерно так.

Вот если писать код примерно размером в 10-20kb~ в первом варианте и во втором варианте.
пиши вот так, всегда:

PHP:
<? if($other[0] > 0):
	// это обычно уже приходит в шаблон готовое
	$href = DOMAIN . $p1 . '/' . $p2 . '/'
		. (empty($p3) ? '' : ($p3 . '/'));
?>
<div id='m5'>
	<a id='other' href='<?= $href; ?>' alt=''>
		<span id='buyspan'><?= M::$l[104]; ?></span>
		<span class='count'>[<?= $other[0]; ?>]</span>
	</a>
</div>";
<? endif; ?>
 

Beckie

Новичок
dr-sm
О_о спасибо.

// это обычно уже приходит в шаблон готовое
В смысле, вынести в функцию и назначить результат в статичную переменную?

Про вынос чистого html из тэгов php, но внутри условия, про это я совсем забыл. Спасибо!

<?= для меня новое, не расскажете поподробнее?

<? сокащенный, открывающий тэг php, а знак = своего рода оператор?
 

Духовность™

Продвинутый новичок
$c .= '<div id="m5"><a id="other" href="';
$c .= DOMAIN;
$c .= $p1;$c .= '/';
$c .= $p2;$c .= '/';
ты разве сам не видишь, что у тебя тут куча воды??

PHP:
$c .= '<div id="m5"><a id="other" href="'.DOMAIN.$p1.'/'.$p2.'/';
- мне кажется так куда понятнее.
 

dr-sm

Новичок
Автор оригинала: Beckie
dr-sm
О_о спасибо.

// это обычно уже приходит в шаблон готовое
В смысле, вынести в функцию и назначить результат в статичную переменную?
Про вынос чистого html из тэгов php, но внутри условия, про это я совсем забыл. Спасибо!
<?= для меня новое, не расскажете поподробнее?
<? сокащенный, открывающий тэг php, а знак = своего рода оператор?
<?= $x; ?> это тоже самое что и <? echo $x; ?>

про шаблоны:

PHP:
// some.php
<?
function renderMyMegoDiv($href, $byspan, $count)
{
	require 'templates/mymegodiv.tpl.php';
}

function renderPage()
{
	// ....
	$href = DOMAIN . $p1 . '/' . $p2 . '/' . (empty($p3) ? '' : ($p3 . '/'));
	if ($other[0] > 0)
		remderMyMegoDiv($href, M::$l[104], $other[0]);
}
?>
// -- templates/mymegodiv.tpl.php:
<div id='m5'>
    <a id='other' href='<?= $href; ?>' alt=''>
        <span id='buyspan'><?= $byspan; ?></span>
        <span class='count'>[<?= $count; ?>]</span>
    </a>
</div>
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху