【发布时间】:2012-09-05 03:57:19
【问题描述】:
为了调试我的 PHP 程序,我花了 10 多个小时找出错误。我预计 PHP 在使用未定义的变量时会产生错误。但是当它被用作方法中的对象时,它不会。有什么原因吗?
<?php
$oClass = new MyClass;
// $oCless->tihs('key', 'taht'); //<-- triggers the error: Notice: Undefined variable
$oClass->tihs('key', 'taht');
echo $oClass->arr['key'];
class MyClass {
public $arr = array('key' => 'foo');
function tihs($key, $value) {
$tihs->arr[$key] = $value; //<-- this does not cause an error message.
}
}
?>
【问题讨论】:
-
“this”的拼写非常混乱
-
有一个名为'this'的函数也很混乱
-
PHP 中未定义的值不是错误。如果您启用了正确级别的 display_errors/error_reporting,它们只会发出警告。
-
确保您的错误报告包括通知,并设置自定义错误处理程序,在报告任何错误后中止所有处理,无论是通知、警告还是真正的错误。然后准备修复大量会突然开始抛出通知的代码。
标签: syntax syntax-error php