标签<?在PHP中行为不端

Rha*_*awa 4 php

我正在使用某人留下的遗留代码,而重新部署代码恰好是我的任务.我使用的是Windows Server 2003,Apache 2.0.63和PHP 5.2.10.

它不起作用.至少,不是我预期的方式.如果你愿意的话,把它叫做bug.

在检查时,我怀疑这个代码(在申请中出现多次)是罪魁祸首.

    &$this->

为了说明这个问题,我重现了这段代码:

    <?php
       phpinfo();
       //$variable = &$this->request;
    ?>

上面的代码执行得非常好,并且符合预期.但是,如果我将代码更改为:

    <?
       phpinfo();
       //$variable = &$this->request;
    ?>

代码行为异常,并在屏幕上产生这种结果,这当然是完全不必要的和意外的.

    request; ?>

现在,代码中充斥着与上面类似的代码,因此,应用程序现在在屏幕上生成与此类似的输出:

    request; $user = &$this->user; // This is comment return false; ?>

对于代码如下:

    <?
        $request = &$this->request;
        $user = &$this->user;
        // This is comment
        return false;
    ?>  

我曾试图改变每一个<?随着<?php每当&$ this->重新出现它的丑陋头脑,但大多数时候,它引入了一个新的错误.

我重新安装了PHP和Apache,即使使用另一个版本的PHP(5.2.6),它仍然无法正常工作.我在我的localhost(Mac OS X,PHP 5.2.8和Apache 2.0.63)中部署了代码,并且没有麻烦.

请任何人,任何启示都足够了.

kar*_*m79 12

在php.ini中,您需要设置以下指令:

short_open_tag = On
Run Code Online (Sandbox Code Playgroud)

手册:

告诉我们是否<? ?>应该允许PHP的开放标记的短格式()...

如果您有时间,可能需要考虑用<?完整形式的短标签替换所有这些短标签<?php,以获得更好的便携性(看看刚刚发生在您身上的事情?:)