<?php
var_dump( '{!' . (string)2 + 1 . '}' );
// The "." and "+" have the same precedence, so how operations are grouped
// comes down to their associativity. Left associativity means the operations
// were grouped like:
var_dump( (('{!' . (string)2) + 1) . '}' );
string(4) "{!3}"
Fatal error: Uncaught TypeError: Unsupported operand types: string + int in /in/i2HUO:8
Stack trace:
#0 {main}
thrown in /in/i2HUO on line 8
Process exited with code 255.
Output for 7.4.0 - 7.4.33
Deprecated: The behavior of unparenthesized expressions containing both '.' and '+'/'-' will change in PHP 8: '+'/'-' will take a higher precedence in /in/i2HUO on line 3
Warning: A non-numeric value encountered in /in/i2HUO on line 3
string(2) "1}"
Warning: A non-numeric value encountered in /in/i2HUO on line 8
string(2) "1}"
Warning: A non-numeric value encountered in /in/i2HUO on line 3
string(2) "1}"
Warning: A non-numeric value encountered in /in/i2HUO on line 8
string(2) "1}"