Olewaj wydajność i wybieraj czytelniejsze i prostsze rozwiązanie, dopóki nie zauważysz gdzieś wąskiego gardła. Wydajnościowe wąskie gardło trzeba jednak ZMIERZYĆ, a nie zgadnąć, gdzie się znajduje -- prawie zawsze zgadniesz źle. Także optymalizuj najpierw czytelność. Wydajnością się nie przejmuj, chyba że z góry przeanalizowałeś sytuację i pewne usprawnienia są tak mocno związane z architekturą, że musisz je wprowadzić od razu. Zwykle jednak takie coś oznacza, że system jest źle podzielony na warstwy, mało ortogonalny (wiele rzeczy zależy od wielu innych). Do fajnie zaprojektowanego systemu można stosunkowo łatwo dorzucić np. cache, czy coś w tym stylu.
Co do przytaczanych przez Ciebie rozwiązań to nie wydaje mi się, by ktoś wybierał jedno z nich ze względu na wydajność. Ja polecam stosować to drugie, gdy masz bardzo lekki szkielet aplikacji i korzystasz ze zwykłego PHP do generowania HTML-a, a nie z jakiegoś systemu szablonów (jak Smarty czy coś lepszego).
Wtedy drugi zapis JAK DLA MNIE jest czytelniejszy i bardziej zbliżony do zapisu szablonów. Z takim wyjątkiem, że zamiast:
<?php echo $item->value; ?>
polecam zrobić coś takiego:
<?= $item->value ?>
Krócej, zwięźlej i bardziej szablonopodobnie.
Zauważ podobieństwo:
Smarty:
{foreach from=$list item=element}
{$element}
{/foreach}
Czyste PHP (z krótkimi tagami):
<? foreach($list as $element) : ?>
<?= $element ?>
<? endforeach ?>
leadersmind napisał(a)
Co jest szybsze echo czy print() ?
odpowiedz: echo, ponieważ to składnia języka a print to funkcja
O RLY? Właśnie tworzenie takich legend ludowych jest bezsensowne :).
Print to nie jest żadna funkcja. Zobacz do specyfikacji: http://pl2.php.net/manual/en/function.print.php. Mówi: "print() is not actually a real function (it is a language construct)". Zresztą możesz to sprawdzić, próbując jej użyć jak zmiennej typu callback -- nie da się.