不同服务器对同一php脚本执行,出现不同结果

我写了一些php脚本,里面有个$_GET数组存放输入的参数。但有点小问题就是第一次请求时$_GET数组里面没有传递参数,我也没有加入判断。本地的环境是Apache+php5.5.36,可以加载出页面。另一台电脑是nginx+php5.5.30,会报错。
代码类似如下:

        $start_time = $_GET['DataSearch']['start_time'];   
        $end_time = $_GET['DataSearch']['end_time']; 
        然后把$start_time和$end_time放入sql语句中执行。

我用的是Yii2.0框架,在本地环境页面正常显示,没有数据,这个是期望得到的结果。在另一台电脑显示$_GET里面没有那些参数,并抛出异常。我想请教下这个是由于服务器的容错性不同,还是php版本的容错性不同导致的?两个环境的php代码是一模一样的。

阅读 3k
2 个回答

应该是不同环境的容错(对警告信息的处理方式)不同,用 error_reporting(1); 来忽略警告

加个判断吧
$start_time = isset($_GET['DataSearch']['start_time'])?$_GET['DataSearch']['start_time'] :date('Y-m-d H:i:s');

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题