【发布时间】:2012-01-31 03:23:51
【问题描述】:
为什么codeigniter会在application/logs中显示错误如
ERROR - 2011-12-31 11:43:36 --> Severity: Warning --> Invalid argument supplied for foreach() /var/www/example.com/htdocs/application/views/home/home_vw.php 53
ERROR - 2011-12-31 11:43:36 --> Severity: Notice --> Undefined variable: questions /var/www/example.com/htdocs/application/views/home/home_vw.php 53
如果它们指向的方法工作正常 --- 并且屏幕上没有错误消息?
我的 index.php 设置在
error_reporting(E_ALL);
和配置
$config['log_threshold'] = 1;
关于这种行为的原因有什么想法吗?
【问题讨论】:
-
PHP 可能配置为关闭 display_errors 并打开 log_errors。这通常被认为是生产服务器的最佳实践。
-
但是 CI 说一个变量是未定义的——实际上它已经定义并在前端正确显示了怎么办?
-
变量为空与未定义不同。在这两种情况下,它们都会在输出中显示为空字符串,但前者会触发 E_NOTICE 消息。您看不到它们的事实纯粹是由于 display_errors 关闭,而不是因为它们没有发生。
-
也许您可以添加控制器并查看问题...
-
感谢@GordonM 的洞察力-但我的问题是 var_dump 和 print_r 用于 CI 标签为未定义/无效的变量/参数实际上返回为非空或未定义-所以我现在不知道该做什么为了在不影响实际错误记录的情况下阻止这种记录的发生,有什么建议吗?
标签: php codeigniter logging error-handling