At first glance, that code might make sense. However, the . operator (string concatenation) has to be run three times before print is finally called. So, PHP would execute something like this:
Create a new, temporary string
Put "Foo" in there
Put the result of the somefunc() function in there
Create a new, temporary string
Put the first temporary string in there
Put " bar " in there
Create a new, temporary string
Put the second temporary string in there
Put the result of the anotherfunc() function in there
Send the final temporary string to print, for screen printing
Complicated? A little. Stupid? Certainly. The echo function can take more than one parameter simply by separating them with a comma while still having the same basic functionality. The extra parameters are not joined together in a new string like they are with the concatenation operator, they are just output directly.
So, your code would become:
echo"Foo",dosomething()," bar ",dosomethingelse();
Using a code cache does help eliminate or at least lessen these coding errors, but that does not mean you should be lazy!