|
Posted by M. Sokolewicz on 10/04/82 11:05
Jochem Maas wrote:
> hi guys,
>
> [[
> I original posted this to php-internals because I figured that
> php-general would not know the answer _ it had to do with intended use
> of functionality (I couldn't find anything on the web about) and I
> figured that the guys who wrote/write php would be best equipped to
> answer. well no joy - the post was gloriously ignored, so I figured I
> give it a shot here...
> ]]
>
> I always use curly braces around vars placed in double quoted strings, I
> do this for 2 reasons:
>
> 1. I believe It helps the engine because the var delimitation is
> explicit, and this means the interpolation is (should be?) faster.
it's just as fast as not using it. The delimiter with variables is
simply the $[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* part. Simple
variables (scalar) are described using the above, it doesn't make it
faster to put more around em. Adding {} around array's/objects shouldn't
make it faster, since it's still just taking the entire thing as a
variable until it comes acress a character that either delimits the
whole thing, or is simply not allowed there.
> 2. it looks nice (easier to read!)
I think it looks ugly... but it's a simple matter of personal taste ;)
> I have tried to test this with a simple script that does a million
> interations - but I cannot get it to return consistent results - one
> time with curlies is faster, another its slower. the (php5) script I
> used to test is included at the bottom of the email for those who are
> curious. (I haven't been able to find relevant info on either google or
> php.net - are there any other search engines? ;-)
>
> I am interested in knowing whether my first assumption regarding speed
> of interpolation is (in theory) at all correct.
>
> If any of the php gurus would give advice as to use of curly braces in
> interpolated strings would it be:
>
> a, always use them (its faster/better)
> b, only when absolutely necessary
> c, go away troll and figure it out for yourself
> (this one is tempting, n'est pas ;-)
> d, something I haven't had the presence of mind to think of!
>
> [[
> choice c, is only relevant to internal btw :-)
> ]]
>
> kind regards,
> Jochem.
>
> <?
>
> class Tester
> {
> public $testvar;
> }
>
> $t = new Tester;
> $t->testvar = 'superduper';
> $a = array('junk' => 'notbad!');
>
> var_dump($t, $a);
>
> $strs = array();
>
> $start = mktime();
> $i = 0;
> do {
> $c = 'simplicity' + $i;
> $strs[] = "{$t->testvar} yadda yadda {$a['junk']} - {$c}\n";
> $i++;
> } while ($i < 1000001);
>
> $diff = (mktime() - $start);
> echo "With Curlies - Total Time Taken ($diff): ".floor($diff / 60).'
> mins & '.($diff % 60).' secs'."\n";
>
> $strs = array();
>
> $start = mktime();
> $i = 0;
> do {
> $c = 'simplicity' + $i;
> $strs[] = "$t->testvar yadda yadda $a[junk] - $c\n";
> $i++;
> } while ($i < 1000001);
>
> $diff = (mktime() - $start);
> echo "Without Curlies - Total Time Taken ($diff): ".floor($diff / 60).'
> mins & '.($diff % 60).' secs'."\n";
Navigation:
[Reply to this message]
|