连普科技 发表于 2018-5-26 17:41:15

CI4 遇到使用未审明的变量时,就终止程序进行了,如何处理

CI4 遇到使用未审明的变量时,就终止程序进行了,如何处理

是不是要重写一下 相关的方法。。。



CRITICAL - 2018-05-26 04:16:38 --> Undefined index: step
#0 D:\wamp64\wwwroot\ci4.com\application\Controllers\Home.php(10): CodeIgniter\Debug\Exceptions->errorHandler(8, 'Undefined index...', 'D:\\wamp64\\wwwro...', 10, Array)
#1 D:\wamp64\wwwroot\ci4.com\system\CodeIgniter.php(714): App\Controllers\Home->index()
#2 D:\wamp64\wwwroot\ci4.com\system\CodeIgniter.php(249): CodeIgniter\CodeIgniter->runController(Object(App\Controllers\Home))
#3 D:\wamp64\wwwroot\ci4.com\system\CodeIgniter.php(204): CodeIgniter\CodeIgniter->handleRequest(NULL, Object(Config\Cache))
#4 D:\wamp64\wwwroot\ci4.com\index.php(36): CodeIgniter\CodeIgniter->run()
#5 {main}






连普科技 发表于 2018-5-26 18:50:25

自问自答 ...(#^.^#)

我在 system/debug/exceptions.php 里找到 public function errorHandler(int $severity,这个 $severity 就是错误等级 数字

作为非专业编程人员 我是这样找问题的..粗暴吧





后来改成了 !in_array($severity,array(2,8))   
Ok 结束 又开始愉快的使用CI4了


另附错误报告的等级,掌握了一个小知识点啊

值          常量                     说明
1         E_ERROR             报告导致脚本终止运行的致命错误
2         E_WARNING       报告运行时的警告类错误(脚本不会终止运行)
4         E_PARSE             报告编译时的语法解析错误
8         E_NOTICE         报告通知类错误,脚本可能会产生错误
32767   E_ALL                  报告所有的可能出现的错误(不同的PHP版本,常量E_ALL的值也可能不同)

连普科技 发表于 2018-5-26 18:54:29

补充我觉得ci4应该在配置文件里 再加一个这样的错误等级显示 ,
现在来看, 要重写这个小方法,有点懵

Hex 发表于 2018-5-26 22:06:25

赞楼主的钻研精神。

不过我个人认为程序中不应该出现未定义变量,所有变量都应该先声明后使用,或者先检测是不是存在再使用,这才是严谨的代码。

272021899 发表于 2018-5-28 18:01:56

本帖最后由 272021899 于 2018-5-28 18:17 编辑

在使用原生_GET之前一般都会 用 isset 判断下。没有就给默认值$step = isset($_GET['step ']) ? $_GET['step '] : 0;
ci4 里面 GET POST 不是这么用的。现在框架都流行封装在request里面

https://codeigniter-chinese.gith ... ncomingrequest.html

在控制器里面你可以直接

      $this->request->getGet();
      $this->request->getPost();
      $this->request->getPostGet();//先 $_POST, 后 $_GET
      $this->request->getGetPost();//先 $_GET, 后 $_POST





连普科技 发表于 2018-5-28 20:02:22

272021899 发表于 2018-5-28 18:01
在使用原生_GET之前一般都会 用 isset 判断下。没有就给默认值
ci4 里面 GET POST 不是这么用的。现在框 ...

谢谢,学习了
页: [1]
查看完整版本: CI4 遇到使用未审明的变量时,就终止程序进行了,如何处理