PHP ist ein Interpreter, so, um eine gute Leistung für haben Gute Code, muss es sich auf beschränken nicht "gültig" komplexe Opimisierungen (wie Compiler können, weil sie Zeit dafür haben).
Seit der Zeit eines Assemblers ist es besser, =+
als seine äquivalente Summe zu haben, nur weil es weniger Ressourcen verbraucht.
Im Falle von PHP, Token =+
zu T_PLUS_EQUAL
, auch am besten von PHP ausführbare ausgeführt, und auf der anderen Seite, die Summe, nun, es ist Tokenized (und ausgeführt) wie eine Summe.
Im Anschluss an die "Dumps" von beiden token_get_all()
<?php echo '<pre>';
print_r(array_map(function($t){if(is_array($t)) $t[0]=token_name($t[0]); return $t;},
token_get_all('<?php $a=$a+3 ?>')));
print_r(array_map(function($t){if(is_array($t)) $t[0]=token_name($t[0]); return $t;},
token_get_all('<?php $a+=3 ?>')));
// results in:
?>
Array
(
[0] => Array
(
[0] => T_OPEN_TAG
[1] => 1
)
[1] => Array
(
[0] => T_VARIABLE
[1] => $a
[2] => 1
)
[2] => =
[3] => Array
(
[0] => T_VARIABLE
[1] => $a
[2] => 1
)
[4] => +
[5] => Array
(
[0] => T_LNUMBER
[1] => 3
[2] => 1
)
[6] => Array
(
[0] => T_WHITESPACE
[1] =>
[2] => 1
)
[7] => Array
(
[0] => T_CLOSE_TAG
[1] => ?>
[2] => 1
)
)
Array
(
[0] => Array
(
[0] => T_OPEN_TAG
[1] => 1
)
[1] => Array
(
[0] => T_VARIABLE
[1] => $a
[2] => 1
)
[2] => Array
(
[0] => T_PLUS_EQUAL /// <= see here!!!!!
[1] => +=
[2] => 1
)
[3] => Array
(
[0] => T_LNUMBER
[1] => 3
[2] => 1
)
[4] => Array
(
[0] => T_WHITESPACE
[1] =>
[2] => 1
)
[5] => Array
(
[0] => T_CLOSE_TAG
[1] => ?>
[2] => 1
)
)
wenn nichts anderes, es ist etwas weniger Code zu analysieren. –
Wie machst du es? Es wäre interessant zu wissen, dass ... – CodeAngry
meine Vermutung ist, dass Sie $ a erhöhen können, anstatt $ a in eine neue Variable zu ändern, die nur 3 Ziffern größer ist – exussum