为什么此代码会在 PHP 7.0 而不是 5.6 上导致错误

why does this code cause error on PHP 7.0 but not 5.6

我刚刚将我的开发服务器更新为 PHP 7,但我收到一个错误,提示我没有使用 PHP 7 访问 MAMP。这是代码:

$GLOBALS['PLACEHOLDERS'] = array(
                        "search"=>
                            array(
                                "%PAGE.NAME%", 
                                "%PAGE.TITLE%", 
                                "%PAGE.DESCRIPTION%",
                                "%PAGE.REFERENCE%", 
                                "%PAGE.ADMINTOOLBAR%",
                                "%PAGE.ADMININCLUDES%",
                                "%ROOT%"
                            ),
                        "replace"=>
                            array(
                                "<?= $_SESSION['PAGE']['name']; ?>",
                                "<?= $_SESSION['PAGE']['name']; ?>",
                                "<?= $_SESSION['PAGE']['description']; ?>",
                                "<?= str_replace(array('/', '.php'), array('_', ''), $_SESSION['PAGE']['reference']); ?>",
                                "<? base_renderAdminToolbar(); ?>",
                                "<? base_renderAdminIncludes(); ?>",
                                "<?= ROOT; ?>"
                            )
                        );

我得到一个

 PHP Parse error:  syntax error, unexpected '$_SESSION' (T_VARIABLE), expecting identifier (T_STRING) in /home/vjukebox/public_html/_engine/config.php on line 124

第 124 行是第一行 "<?= $_SESSION['PAGE']['name']; ?>", 在我的开发服务器上,但此代码在 MAMP 上的 PHP 7 和开发服务器上的 PHP 5.6 上有效。

在 php.ini 中启用 short_open_tags 解决了问题。