我刚搬到新主人那里 在这个新的主机中,我总是得到error_log,即使使用这个简单的php文件:
<?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
在新托管中使用litespeed http://freakimage.com/images/118litespeed.jpg
答案 0 :(得分:4)
这是错误的
<?php define(Y,120); ?>
define()的第一个参数是字符串
因此它应该是
<?php define('Y',120); ?>
之所以经常看到它没有引号,是因为人们已经关闭了警告而且PHP太宽容了。在任何情况下,在定义常量之前没有引号都是错误的。
当然,您只能使用error_reporting()停用E_NOTICE
错误,但这是不好的做法。 (因为即使是严重的错误也有时被PHP认定为通知。)