Edit report at https://bugs.php.net/bug.php?id=63632&edit=1

 ID:                 63632
 Comment by:         inefedor at gmail dot com
 Reported by:        bensor987 at neuf dot fr
 Summary:             $var =. 'val';
 Status:             Open
 Type:               Feature/Change Request
 Package:            Variables related
 Operating System:   All
 PHP Version:        Irrelevant
 Block user comment: N
 Private report:     N

 New Comment:

I think the main concern with "preconcatenation" is 100% chance of reallocation 
of memory. If it will be part of syntax - people would use it often, but it's 
something you should avoid using of.

Try to execute this code:
$c = 10000;
$b = 200;

$t1 = microtime(1);

$str1 = "";
for ($i = 0; $i < $c; ++$i) {
    $str1 = str_repeat(mt_rand(0, 9), $b) . "\n" . $str1;
}
$t1 = microtime(1) - $t1;

$t2 = microtime(1);
$strArr = array();
for ($i = 0; $i < $c; ++$i) {
    $strArr[] = str_repeat(mt_rand(0, 9), $b);
}
$strArr = implode("\n", array_reverse($strArr));
$t2 = microtime(1) - $t2;

echo $t1 . "\n" . $t2 . "\n";


First part of this code does exactly the same as second part, but it's 300 
times slower.


Previous Comments:
------------------------------------------------------------------------
[2012-11-28 11:07:15] bensor987 at neuf dot fr

Erm. Maybe we could use another syntax for this suggestion ?

------------------------------------------------------------------------
[2012-11-28 10:57:51] inefedor at gmail dot com

Collides with:
$asd =.4;
echo $asd;

Output should be: 0.4

------------------------------------------------------------------------
[2012-11-28 09:57:01] bensor987 at neuf dot fr

Description:
------------
Why not add  "$var =. 'val';" syntax ? 

It would concatenate 'val' before $var.

Actually, you have to do this
<?php
$var = 'val' . $var;
?>

My suggestion make the code shorter :

<?php
$var =. 'val';
?>

Test script:
---------------
<?php
$a = "Hello ";
$b = $a . "World!"; // now $b contains "Hello World!"
$c = "World! " . $a; // now $c contains "World! Hello "

$a = $b = "Hello ";
$a .= "World!";     // now $a contains "Hello World!"
$b =. "World! ";     // now $b contains "World! Hello "
?>




------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=63632&edit=1

Reply via email to