当我运行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扩展基金会..
答案 0 :(得分:2)
我的猜测(因为你没有发布足够的代码来判断)是你在一个父类中使用不同签名的方法。像:
class A
{
public function blah($a, $b) { }
}
class B extends class A
{
public function blah($a) { }
}
PHP会抱怨(应该这样)。调用代码需要提供1个参数还是2个?
答案 1 :(得分:1)
当我在joomla安装中打开E_STRICT时,我遇到了类似的警告。在每一个案例中,我检查了两个函数,发现问题是在一个函数中传递的参数数量与另一个函数不同。作为一般规则,我能够通过添加缺少的参数来修复所有错误(类似于$ param = null)。
我建议您搜索整个代码,以了解如何调用这两个函数。这可能会为您提供有关如何解决问题的线索。
祝你好运!PS:顺便说一下,根据我的经验,你不一定要修复这些警告。在我的情况下,在我修复警告之前,joomla工作正常。
答案 2 :(得分:0)
在php.ini文件中,您需要更改error_reporting设置以排除 E_STRICT 。 例如: error_reporting( E_ERROR | E_WARNING | E_PARSE );
请注意 E_ALL 也会导致此问题,因为自PHP#5.0.0起包含 E_STRICT 。