【问题标题】:php using foreach on an object will only run oncephp 在对象上使用 foreach 只会运行一次
【发布时间】:2013-04-29 17:09:07
【问题描述】:

我有一段代码可以在 DatePeriod 对象上运行一些代码。在某些情况下,我需要在 DatePeriod 上运行这个 foreach 几次。

foreach($objects as $object){
   foreach($period as $date){
     //do stuff
   }
}

在我的开发服务器上运行良好,当我切换到生产时。它只会在第一次运行。每次后续尝试都将跳过 $period foreach。

我可以通过取消设置 $period 对象并对其进行初始化来解决此问题,但如果可以避免的话,我宁愿不这样做。

有谁知道为什么我的代码只在我的生产服务器上的行为方式?

谢谢。

【问题讨论】:

  • 开发服务器和生产服务器的PHP版本/操作系统是否相同?
  • foreach 之后的reset($period); 是否可以解决问题?
  • @TimothyChoi [生产:ubuntu 上的 PHP 版本 5.3.2-1] [开发:Windows 7 (xampp) 上的 PHP 版本 5.4.7]
  • Documentation 中的最后一条评论提到了在同一 DatePeriod 上执行多个 foreach 循环时某些 PHP 版本中的错误。
  • 无论如何,5.3.2 都有一个错误,导致它无法正常工作。

标签: php object foreach


【解决方案1】:

感谢大家的帮助,但是我通过php补丁说明发现了问题。

https://bugs.php.net/bug.php?id=52668

我将不得不在我的生产服务器上更新到更新版本的 php。

【讨论】:

    猜你喜欢
    • 2015-04-10
    • 1970-01-01
    • 2013-11-28
    • 2014-12-29
    • 1970-01-01
    • 2013-07-28
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多