PHP中对象变为null的实例

PHP中对象变为null的实例,php,Php,我们曾经遇到过一个间歇性的问题,实例化对象的变量在一两行代码中似乎随机变为null 比如说 class Club { } class Foo { public function Bar(Club $club) { // Do something } } $club = new Club(); (new Foo())->Bar($club); 通过错误传递给Foo::bar()的参数1必须是Club的实例,如果为null这在运行单元测试时尤其普遍

我们曾经遇到过一个间歇性的问题,实例化对象的变量在一两行代码中似乎随机变为null

比如说

class Club {
}

class Foo {
    public function Bar(Club $club)
    {
        // Do something
    }
}

$club = new Club();
(new Foo())->Bar($club);
通过错误
传递给Foo::bar()的参数1必须是Club的实例,如果为null
这在运行单元测试时尤其普遍,但有时会在实时请求中出现

甚至试图用嘲弄来回避俱乐部课程中可能出现的任何问题

$club = Mockery::mock(Club::class);
(new Foo())->Bar($club);
这是在Ubuntu 14.04.3 LTS和PHPUnit 5.4.7上运行PHP7.0.12-1


有没有人遇到过类似的问题?或者关于如何调试此类问题的任何想法(特别是考虑到它的间歇性)

如果在
Club
中设置属性,问题是否相同?编辑:在Windows 8上使用
PHP7.0.12(cli)
,示例中的代码运行良好。可能是Ubuntu版本中的错误。使用时没有问题。@AnthonyB是的,这里的代码显然已经简化了。一个特定的单元测试使用
$club=mockry::mock(club::class)
$club->club\u id=47
$article=ClubNewsUtility::getArticle($club,12)
Hmm无法在注释中获得正确的格式,但您可以获得idea@JohnHickling我在我的机器上测试了它,我认为这可能是Ubuntu版本的一个错误。这个简化的代码(你的例子)在你的机器上也失败了?