我正在使用某人留下的遗留代码,而重新部署代码恰好是我的任务.我使用的是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,以获得更好的便携性(看看刚刚发生在您身上的事情?:)