我刚刚搬到新主机在这个新主机中,即使使用这个简单的 php 文件,我也总是得到error_log:
<?php define(Y,120); ?>
这是error_log内容:
[09-Apr-2015 18:42:09 UTC] PHP Notice: Use of undefined constant Y -
assumed 'Y' in /home/username/public_html/test.php on line 1
我可以像这样添加单引号包裹 Y 来修复它
<?php define('Y',120); ?>
但是有很多这样的代码,如果我不需要更改文件会更好,但只需更改所需的托管,它实际上是什么?是因为使用Litespeed吗?
在旧主机中有 CGI-FCGI 信息http://freakimage.com/images/726cgi_fcgi.jpg
在新托管中使用 litespeedhttp://freakimage.com/images/118litespeed.jpg
错误的
<?php define(Y,120); ?>
define() 的第一个参数是字符串
因此应该是
<?php define('Y',120); ?>
之所以经常看到它没有引号,是因为人们已经关闭了警告,而PHP太宽容了。在任何情况下,在定义常量之前不带引号都是错误的。
当然,您可以使用 error_reporting() 禁用E_NOTICE
错误,但这是不好的做法。(因为即使是严重的错误有时也被PHP认为是通知)。