Php 严格的标准:RPA::Preload Field()的声明应该与Foundation::Preload Field()的声明兼容
当我运行index.php并加载页面时,会出现以下错误: 严格的标准:RPA::Preload Field()的声明应该与第39行C:\xampps\htdocs\Res\RPA.php中的Foundation::Preload Field()的声明兼容 我已经看过RPA.php的第39行,这个类叫做:Php 严格的标准:RPA::Preload Field()的声明应该与Foundation::Preload Field()的声明兼容,php,Php,当我运行index.php并加载页面时,会出现以下错误: 严格的标准:RPA::Preload Field()的声明应该与第39行C:\xampps\htdocs\Res\RPA.php中的Foundation::Preload Field()的声明兼容 我已经看过RPA.php的第39行,这个类叫做: class RPA extends Foundation 对这个错误有什么看法吗 此函数来自基础类: public function PreLoadField($table, $column,
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扩展基础..
我猜(因为你没有发布足够的代码告诉你),你正在用不同的签名在父类中重写一个方法。比如:class A
{
public function blah($a, $b) { }
}
class B extends class A
{
public function blah($a) { }
}
PHP会对此抱怨(这是应该的)。调用代码需要提供一个或两个参数吗?我的猜测(因为您没有发布足够的代码)是,您在父类中使用了一个具有不同签名的方法。比如:
class A
{
public function blah($a, $b) { }
}
class B extends class A
{
public function blah($a) { }
}
PHP会对此抱怨(这是应该的)。调用代码需要提供一个或两个参数吗?在joomla安装中打开E_STRICT时,我遇到了类似的警告。在每一种情况下,我都检查了这两个函数,发现问题在于一个函数中传递的参数数量不同于另一个函数。一般来说,我可以通过添加缺少的参数(比如$param=null)来修复所有错误 我建议您对整个代码进行搜索,以查看如何调用这两个函数。这可能会为您提供有关如何解决问题的线索 祝你好运
顺便说一句,根据我的经验,你不一定要修正那些警告。在我的例子中,joomla在修复警告之前工作得很好。在joomla安装中打开E_STRICT on时,我遇到了类似的警告。在每一种情况下,我都检查了这两个函数,发现问题在于一个函数中传递的参数数量不同于另一个函数。一般来说,我可以通过添加缺少的参数(比如$param=null)来修复所有错误 我建议您对整个代码进行搜索,以查看如何调用这两个函数。这可能会为您提供有关如何解决问题的线索 祝你好运
顺便说一句,根据我的经验,你不一定要修正那些警告。就我而言,joomla在修复警告之前工作正常。在php.ini文件中,您需要将错误报告设置更改为排除E\u STRICT。 例如: 错误报告(E|u错误| E|u警告| E|u解析)
请注意,E#u ALL也会导致此问题,因为它包括自PHP 5.0.0以来的E#u STRICT。在PHP.ini文件中,您需要更改错误报告设置以排除E#u STRICT。 例如: 错误报告(E|u错误| E|u警告| E|u解析)
请注意,E#u ALL也会导致此问题,因为它包括E#u STRICT,因为PHP#5.0.0。Foundations::Preload字段比RPA::Preload字段多1个参数($disabled)。您需要将$disabled=false添加到您的RPA方法中。该方法已添加,但仍不起作用!现在有不同的信息吗?还是什么都不做?不工作是什么意思?您的评论似乎被切断了?Foundations::Preload Field比RPA::Preload Fields($disabled)多1个参数。您需要将$disabled=false添加到您的RPA方法中。该方法已添加,但仍不起作用!现在有不同的信息吗?还是什么都不做?你不工作是什么意思?你的评论好像被切断了?