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}
自问自答 ...(#^.^#)
我在 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的值也可能不同)
补充我觉得ci4应该在配置文件里 再加一个这样的错误等级显示 ,
现在来看, 要重写这个小方法,有点懵 赞楼主的钻研精神。
不过我个人认为程序中不应该出现未定义变量,所有变量都应该先声明后使用,或者先检测是不是存在再使用,这才是严谨的代码。 本帖最后由 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
272021899 发表于 2018-5-28 18:01
在使用原生_GET之前一般都会 用 isset 判断下。没有就给默认值
ci4 里面 GET POST 不是这么用的。现在框 ...
谢谢,学习了
页:
[1]