dna*_*irl 7 php oop spl iterator
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
| 归档时间: | 
 | 
| 查看次数: | 4764 次 | 
| 最近记录: |