【问题标题】:Accessing the Iterator interface in PHP 5.2.17在 PHP 5.2.17 中访问 Iterator 接口
【发布时间】:2012-03-12 13:58:12
【问题描述】:

目前我们必须使用 PHP 5.2。是的,我知道我应该升级到 5.3 或 5.4,但与此同时:

我正在尝试编写自己的实现 Iterator 接口的类。但是找不到类,显然是因为没有加载Iterator接口。但是,加载了 SPL,我认为这已经足够了。

有什么建议吗?毫无疑问,我错过了一些愚蠢的事情......

提前致谢。

【问题讨论】:

  • 你有一个不起作用的简单例子吗? example from the PHP docs 有效吗?
  • 你能提供你实现Iterator的代码吗?你得到的究竟是哪个错误?
  • 我的代码现在看起来相当简单,因为我已经剥离了所有代码。我最终得到了一个看起来像这样的类: class MyClass implements Iterator { // 所有 Iterator 操作已实现 } 当我尝试实例化 MyClass 时,我得到:致命错误:Class 'MyClass' not found in ... 注释掉“实现迭代器”消除了错误。 (当然,重点不是现在的迭代器。)

标签: php iterator


【解决方案1】:

迭代器不是一个类,它是一个接口:

class Yourclass implements Iterator {

  // Methods here

}

如果这不能解决问题,您应该考虑在您的问题中实际包含一些代码。

【讨论】:

    【解决方案2】:

    在使用土耳其语言环境时,它看起来像是一个旧错误(未修复):https://bugs.php.net/bug.php?id=18556

    如果是这样,请尝试使用其他语言环境。

    【讨论】:

      猜你喜欢
      • 2012-11-17
      • 2021-04-28
      • 2012-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-03
      • 2012-05-03
      • 1970-01-01
      相关资源
      最近更新 更多