当我运行index.php并加载页面时,会出现以下错误:
严格标准: RPA::PreLoadField()的声明应该与第39行C:\xampps\htdocs\Res\RPA.php中的Foundation::PreLoadField()兼容
我看过RPA.php的第39行,这个类名为:
class RPA extends Foundation对这个错误有什么想法吗?
此函数来自基金会类:
public function PreLoadField($table, $column, $rowid, $coldata, &$value, $disabled=false)
{
$retval = false;
if ($table === 'photos')
{
if ($column === 'blogentry')
{
$value = LookUpBlogEntries ($column, $coldata[$column]);
$retval = true;
}
}
return $retval;
}此函数来自RPA类:
public function PreLoadField($table, $column, $rowid, $coldata, &$value)
{
$retval = parent::PreLoadField($table, $column, $rowid, $coldata, &$value);
return $retval;
}RPA扩展基金会。
发布于 2011-09-08 02:17:58
我的猜测(因为您没有发布足够的代码来说明)是,您在一个具有不同签名的父类中使用了一个方法。比如:
class A
{
public function blah($a, $b) { }
}
class B extends class A
{
public function blah($a) { }
}PHP会对此抱怨(这是它应该做的)。调用代码是否需要提供一个或两个参数?
发布于 2011-09-08 02:23:16
当我在joomla安装中打开E_STRICT时,我也遇到了类似的警告。在每一种情况下,我都检查了这两个函数,发现问题是在一个函数中传递的参数数与另一个函数中传递的参数数不同。作为一般规则,我可以通过添加缺少的参数(类似于$param = null)来修复所有错误。
我建议您对整个代码进行搜索,以了解如何调用这两个函数。这可能会给你一个关于如何解决问题的线索。
祝好运!
顺便说一句,根据我的经验,你不一定要修正那些警告。在我的例子中,joomla在我修正警告之前工作得很好。
发布于 2013-05-08 21:23:27
在php.ini文件中,需要更改error_reporting设置以排除E_STRICT。例如: error_reporting(E_ERROR E_WARNING E_WARNING E_PARSE);
请注意,E_ALL也会导致此问题,因为它包含了自PHP#5.0.0以来的E_STRICT。
https://stackoverflow.com/questions/7342436
复制相似问题