gpt4 book ai didi

php - iterator_to_array

转载 作者:可可西里 更新时间:2023-11-01 12:52:59 25 4
gpt4 key购买 nike

DatePeriod是一个用于处理重复日期的 PHP 类。它的方法数量非常有限。所以当我想用重复日期做基本的数组函数时,我必须将它复制到一个数组中 iterator_to_array .奇怪的是,复制它似乎会破坏它。有什么想法吗?

$p=new DatePeriod(date_create('2008-01-01'),
DateInterval::createFromDateString( "+2 days" ),
date_create('2008-12-31'));

echo count(iterator_to_array($p)); //183

$a=iterator_to_array($p);
echo count($a); //0

最佳答案

这是我要做的。我将扩展 DatePeriod 并实现一个 toArray 方法:

class MyDatePeriod extends DatePeriod
{
public $dates;

public function toArray()
{
if ($this->dates === null) {
$this->dates = iterator_to_array($this);
}

return $this->dates;
}
}

$p = new MyDatePeriod(date_create('2008-01-01'),
DateInterval::createFromDateString( "+2 days" ),
date_create('2008-12-31'));

echo count($p->toArray()) . "\n"; // 183

echo count($p->toArray()) . "\n"; // 183

关于php - iterator_to_array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1427097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com