All this stems from the goal of the language developers to "do the right thing."
That this piece of code should do what the niave programmer or an occasional viewer of a piece of code expects from it. It was not an easy task.
Php (, C if (a = b) {... perl, ( "xxxx" == 0) {print "True!";}).
0 == 0000 if ( "000" ) {echo "True!"; } - , , , pracice . , "" === , php .