In PHP, incorrect use of parentheses can cause unexpected behavior in code.
Therefore, it is important to avoid the unnecessary usage of parentheses for language constructs.
== Why is this an issue?
Using constructs with parentheses can be misleading as it will produce a syntax that looks like a normal function call.
However those constructs have lower precedence in the evaluation order than some others operators, this can lead to a behavior completely different from what the function syntax would hint.
Also, some of the constructs have optional parameters, while modifying the code we may remove a parameter while keeping the parentheses, resulting in invalid code.
== How to fix it
When not necessary, do not use parentheses for the constructs.
To be noted that some construct such as `isset()`, `exit()` or `array()` does require them.
Here is the list of constructs for which parentheses could be used but should be avoided :