phpunit assertNull получает поврежден zend_mm_heap

При использовании скаляра:

$null = null; $this->assertNull($null); 

Проверить OK

 $null = 'not null'; $this->assertNull($null); 

Тест не пройден

При использовании Object:

 $this->assertEquals(null, $menu->getChild('Projects')); 

Проверьте OK или Fail, если $ menu-> getChild («Проекты») является нулевым или нет

 $this->assertNull($menu->getChild('Projects')); 

Висит и я получаю ошибку: zend_mm_heap поврежден

При использовании AssertNull я не получаю такое же поведение, как AssertEquals (null, $ var) ; На данный момент я запрещаю использование AssertNull, но мне было интересно, может ли кто-нибудь из вас объяснить, что происходит …

Объект имеет тип: Knp \ Menu \ MenuItem (объект из библиотеки php knpmenu)

Проблема заключается в проблеме рекурсии, связанной с функцией из библиотеки phpunit.

класс: PHPUnit / Util / Type

function: recursiveExport

 preg_match_all('/\n \[(\w+)\] => Array\s+\*RECURSION\*/', print_r($value, TRUE), $matches); 

$ value content

Как вы видите, у ребенка есть ссылка на родительский объект, который является причиной тупика.

Но когда я прочитал документацию print_r , сказано:

До PHP 4.0.4 print_r () будет продолжаться вечно, если задан массив или объект, который содержит прямую или косвенную ссылку на себя. Примером является print_r ($ GLOBALS), потому что $ GLOBALS сама является глобальной переменной, которая содержит ссылку на себя.

Я использую :

PHPUnit 3.7.10 от Себастьяна Бергмана.

PHP 5.4.7 (cli) (построено: 12 сентября 2012 23:48:31)

Мое заключение на данный момент – НЕ использовать assertNull, но AssertEquals