The parentheses are required because PHP's language specification says so (even though there appears to be no explicit formal specification of the language to be found).
What PHP does when it encounters an unknown identifier is output an E_NOTICE error to let you know that an unknown identifier was used, and then assumes that you meant to use that identifier as a string.
<?php
$foo = unknown_identifier;
echo 'Now printing: ' . $foo; // prints 'Now printing: unknown_identifier' (PHP 5.2.6)
?>
The reason you're not seeing any error is likely because E_NOTICE errors are below your error reporting threshold. You can change this threshold using the error_reporting directive:
<?php
error_reporting(E_ALL);
$foo = unknown_identifier;
echo 'Now printing: ' . $foo;
?>
This will output the "Notice" error message as posted above by Yacoby.
Note that, misleadingly, the E_ALL error reporting directive does not in fact include all reporting levels in PHP 5.x. In PHP 5, you need to use E_ALL | E_STRICT
to enable all error messages.
-- edit: beaten to the punch by many people.