Просмотр исходного кода

fix ZF-6995

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@16090 44c647ce-9c0f-0410-b52a-842ac1e357ba
doctorrock83 16 лет назад
Родитель
Сommit
ae26da16d0
2 измененных файлов с 12 добавлено и 1 удалено
  1. 2 1
      library/Zend/Config.php
  2. 10 0
      tests/Zend/ConfigTest.php

+ 2 - 1
library/Zend/Config.php

@@ -197,7 +197,8 @@ class Zend_Config implements Countable, Iterator
     public function toArray()
     {
         $array = array();
-        foreach ($this->_data as $key => $value) {
+        $data = $this->_data;
+        foreach ($data as $key => $value) {
             if ($value instanceof Zend_Config) {
                 $array[$key] = $value->toArray();
             } else {

+ 10 - 0
tests/Zend/ConfigTest.php

@@ -529,5 +529,15 @@ class Zend_ConfigTest extends PHPUnit_Framework_TestCase
         $this->assertTrue($config->one->readOnly(), 'First level children are writable');
         $this->assertTrue($config->one->two->readOnly(), 'Second level children are writable');
     }
+    
+    public function testZF6995_toArrayDoesNotDisturbInternalIterator()
+    {
+        $config = new Zend_Config(range(1,10));
+        $config->rewind();
+        $this->assertEquals(1, $config->current());
+
+        $config->toArray();
+        $this->assertEquals(1, $config->current());
+    }
 }