PHP 5.2.1RC2
Apache 2.2.4
Test jest zerżnięty z manuala PHP, ale wyniki wcale nie pasują do tego, co tam piszą.
<?php $var = 1; $timeTests[$p]['znak'] = 'Start'; for( $x=0; $x < 10; $x++ ) { for( $i=0; $i<100000; $i++ ) { $string = " $var $var $var $var $var $var $var $var $var $var $var $var $var $var $var"; } $timeTests[$p]['znak'] = 'cudzyslow'; for( $i=0; $i<100000; $i++ ) { $string = ' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var.' '.$var; } $timeTests[$p]['znak'] = 'apostrof'; } $timePrev = 0; foreach ($timeTests as $time) { $timePrev = $time['czas']; } ?>
Wyniki:
cudzyslow: 0.88375806808472
apostrof: 0.8967490196228
cudzyslow: 0.74423408508301
apostrof: 0.87470483779907
cudzyslow: 0.74281716346741
apostrof: 0.87087082862854
cudzyslow: 0.76653909683228
apostrof: 0.88087105751038
cudzyslow: 0.75698590278625
apostrof: 0.89448595046997
cudzyslow: 0.73796796798706
apostrof: 0.8895571231842
cudzyslow: 0.7416090965271
apostrof: 0.91190385818481
cudzyslow: 0.74819707870483
apostrof: 0.90215492248535
cudzyslow: 0.73282599449158
apostrof: 0.88878703117371
cudzyslow: 0.75126600265503
apostrof: 0.90079808235168
Opis wyników i wnioski
Jak widać stworzenie stringów przez łączenie tekstu i integera (' '.$var) jest wolniejsze o około 20% niż wstawienie tego integera do stringa(" $var")

Ale może ja coś źle robię?