I'm very (to the power of one million) happy to say that after a couple of weeks of not working on ZPE after feeling very despondent about it after spending a long time searching for a bug, I'm glad to say that I have finally fixed it and it only took me a few minutes tonight.
The issue affects all of version 1.4 from version 1.4.2 onward due to the bug being in the LAMP parser. This bug was down to the fact that if a single variable was part of an expression it would attempt to look at the variable as a value, not as an ID. This fix is marked as being crucial to the success of any version of ZPE, so please ensure you do not use version 1.4.5 any longer and update to version 1.5.0.
There are still things needing done in version 1.5.0 to make it work perfectly, but I'm getting there now.
Note as of tonight, the following needs to considered:
$v = 12 $x = 10 print($x * $v + 12)
This will not give 132 as expected. However, the following will:
print(12 + $x * $v) print(($x * $v) + 12)
Future versions of ZPE are fixing a lot of these bugs, but I will be adding the Typo system to the next major version of ZPE as well.