The expression
"a".(strlen('ab')-strlen('a'))
evaluates to a1
as expected.
But if I accidentally omit parentheses,
"a".strlen('ab')-strlen('a')
evaluates to -1
. What is happening here?
The expression
"a".(strlen('ab')-strlen('a'))
evaluates to a1
as expected.
But if I accidentally omit parentheses,
"a".strlen('ab')-strlen('a')
evaluates to -1
. What is happening here?
I guess you might also get a Warning for non-numeric value when you omit the "()".
As a normal mathematical rule, the brackets are solved first so in the
"a".(strlen('ab')-strlen('a'))
strlen('ab')
is 2 and,
strlen('a')
is 1,
so 2-1= 1 and it gets concated with 'a' so becomes 'a1'.
And when you remove the parentheses,
"a".strlen('ab')-strlen('a')
then it executes left to right so
strlen('ab')
concate's with 'a' which gives a2strlen('a')
which is 1. so warning is displayed.