Der richtige Mix aus HTML und PHP

Es gibt verschiedene Möglichkeiten, PHP-Variablen und HTML-Tags miteinander zu verknüpfen. Wie ist mit sicherheit Geschmackssache und kommt ganz auf den Programmierstil des jeweiligen Programmieres an.

Variane 1:

<?php echo "Hello $user"; ?>

Variante 2:

<?php echo 'Hello '.$user; ?>

Wie jedoch verknüpft man PHP-Variablen und HTML-Tags am sinnvollsten miteinander bzw. welche Variante wird vom PHP-Interpreter schneller abgearbeitet?

Hierzu wieder 2 kleine Codeschnipsel, welche von den jeweiligen Varianten gebrauch machen und die Zeit, welche zum Abarbeiten des PHP-Scriptes benötigt wird, am Ende ausgibt:

Variane 1:

<?php
$start=microtime();
for($i=0;$i<50;$i++)
	$test[$i]="Hello Number <b>$i</b>";
$end=microtime();
echo $end-$start;
//Ausgabe: 0.000218
?>

Variane 2:

<?php
$start=microtime();
for($i=0;$i<50;$i++)
	$test[$i]='Hello Number <b>'.$i.'</b>';
$end=microtime();
echo $end-$start;
//Ausgabe: 0.000171
?>

Vergleicht man die Ausgabe der 2 Codeschnipsel miteinander, stellt man fest, dass Variante 2 geringfügig schneller abgearbeitet wird. Warum? der PHP-Interpreter muss den String nicht erst nach Variablen durchsuchen, sondern weiß durch die Trennnung von HTML-Code sowie PHP-Variablen sofort, was er auszugeben hat. Ein weiterer Grund, warum ich Variante 2 empfehlen würde ist, dass auch der Quelltext strukturierter und somit einfacher lesbar ist.

Schreibgeschwindigkeit Benchmark für USB-Stick mit dd

Erst gestern hatten ein Arbeitskollege und ich die Diskussion, welcher von zwei USB-Sticks wohl der schnellere sei. Jeder machte also seine Benchmarks, er mit einem Tool in Windows, ich mit dd in Linux, mit dem ich 100 MB von /dev/zero (if) auf meinen Corsair Voyager Mini (of) schrieb:

dd if=/dev/zero of=/media/CORSAIR/bench.dat bs=1M count=100

Ausgabe von dd:

100+0 Datensätze ein
100+0 Datensätze aus
104857600 Bytes (105 MB) kopiert, 6,81514 s, 15,4 MB/s

Über folgenden Befehl erhaltet ihr Informationen zu dd und allen Parametern:

man dd

Ergebnis: der Corsair Voyager Mini 4GB war in dem Benchmark unter Linux mit seinen 15,4 MB/s ca. 3x so schnell wie im Benchmark unter Windows (6,0 MB/s). 8-)