【问题标题】:Strict Standards: Declaration of RPA::PreLoadField() should be compatible with that of Foundation::PreLoadField()严格标准:RPA::PreLoadField() 的声明应与 Foundation::PreLoadField() 的声明兼容
【发布时间】:2011-09-08 02:12:17
【问题描述】:

当我运行 index.php 并加载页面时,出现以下错误:

严格标准:RPA::PreLoadField() 的声明应与 C:\xampps\htdocs\Res\RPA.php 第 39 行的 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 扩展了 Foundation..

【问题讨论】:

  • Foundations::PreLoadField 比 RPA::PreLoadFields ($disabled) 多 1 个参数。您需要将 $disabled = false 添加到您的 RPA 方法中。
  • 这个已经添加了但是还是不行!
  • 现在有不同的消息?还是什么都不做?不工作是什么意思?
  • 您的评论好像被截断了?

标签: php


【解决方案1】:

我的猜测(因为您没有发布足够的代码来说明)是您在父类中使用了具有不同签名的方法。喜欢:

class A
{
    public function blah($a, $b) { }
}

class B extends class A
{
    public function blah($a) { }
}

PHP 会抱怨这一点(应该如此)。调用代码需要提供一两个参数吗?

【讨论】:

    【解决方案2】:

    当我在 joomla 安装中打开 E_STRICT 时,我遇到了类似的警告。在每种情况下,我都检查了这两个函数,发现问题在于一个函数中传递的参数数量与另一个不同。作为一般规则,我可以通过添加缺少的参数(类似于 $param = null)来修复所有错误。

    我建议您对整个代码进行搜索,看看这两个函数是如何被调用的。这可能会为您提供有关如何解决问题的线索。

    祝你好运!

    PS:顺便说一下,根据我的经验,您不一定要修复这些警告。就我而言,在我修复警告之前,joomla 工作正常。

    【讨论】:

      【解决方案3】:

      在您的 php.ini 文件中,您需要更改您的 error_reporting 设置以排除 E_STRICT。 例如: error_reporting(E_ERROR | E_WARNING | E_PARSE);

      请注意,E_ALL 也会导致问题,因为它包含自 PHP#5.0.0 以来的 E_STRICT

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-18
        • 1970-01-01
        • 2014-02-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-03
        • 1970-01-01
        相关资源
        最近更新 更多