Vorsicht! Microtime liefert negative Ergebnisse!
<?php
$start = microtime();
$i = 1000;
while ($i--)
{
//do stuff
}
$end = microtime();
echo 'Took ' . $end - $start . ' seconds';
<?php
$start = microtime();
$i = 1000;
while ($i--)
{
//do stuff
}
$end = microtime();
echo 'Took ' . $end - $start . ' seconds';
<?php $start = microtime(); $i = 1000; while ($i--) { //do stuff } $end = microtime(); echo 'Took ' . $end - $start . ' seconds';
Okay, durchatmen. Wo liegt der Fehler? Kenner bemerken vielleicht, dass das Wörtchen Took abhanden gekommen ist. Es geht einfach beim konkatenieren was schief:
<?php
echo "Calculating " . 6 + 5 . " is fun!";
<?php
echo "Calculating " . 6 + 5 . " is fun!";
<?php echo "Calculating " . 6 + 5 . " is fun!";
Nach Operator-Wertigkeit müssen wir natürlich klammern:
<?php
echo "Calculating " . (6 + 5) . " is fun!";
<?php
echo "Calculating " . (6 + 5) . " is fun!";
<?php echo "Calculating " . (6 + 5) . " is fun!";
Selbiges Problem tritt auch im Beispiel oben auf. Der Output von microtime() ist Millisekunden (Scriptlaufzeit) Sekunden (time()), also etwa 0.77571900 1350824124. Da bei unserer Rechnung einfach ein String -> Float – Cast vorgenommen wird und zudem noch die Operatoren-Wertigkeit missachtet wurde, kam es zu diesem merkwürdigen Ergebnis.