Because the close tag implies a semicolon. You can read more about this in the manual under Instruction separation.
And a quote from there:
As in C or Perl, PHP requires instructions to be terminated with a semicolon at the end of each statement. The closing tag of a block of PHP code automatically implies a semicolon; you do not need to have a semicolon terminating the last line of a PHP block. The closing tag for the block will include the immediately trailing newline if one is present.
An example to prove this:
1. script with missing semicolon at the end, but with closing tag:
<?php
echo "1";
echo "2"
//^ semicolon missing
?>
output:
12
2. script with missing semicolon at the end, but without closing tag:
<?php
echo "1";
echo "2"
//^ semicolon missing (closing tag missing)
output:
Parse error: syntax error, unexpected end of file, expecting ',' or ';' in
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…