Ölümcül hata: olmayan bir nesne üzerinde () oluşturmak bir üye işlev çağrısı

0 Cevap php

Bir php proje için Java benzeri koleksiyonlarda benim nesneleri ve LazyLoading işlemek için bir Collection sınıfı kullanın.

Şimdi benim amacım örneğin EmailAddresses bir koleksiyona sahiptir. Yani EmailAddresses bir koleksiyon dönmek için eşleyicisini çağıran nesnenin () fonksiyonu getEmailAddresses diyoruz.

Bu iyi çalışır, ama benim koleksiyonu üzerinde bir foreach döngü yapmak zaman sonunda aşağıdaki hata ile geçerli verileri döndürür:

Fatal error: Call to a member function create() on a non-object in /foo/bar/Collection.php on line 89

Aşağıdaki fonksiyonu yönlendirir:

public function current()
    {
        if ($this->_collection instanceof Iterator)
            $key = $this->_collection->key();
        else
            $key = key($this->_collection);
        if ($key === null)
            return false;
        $item = $this->_collection[$key];
        if (!is_object($item)) {
            $item = $this->_gateway->create($item);
            $this->_collection[$key] = $item;
        }
        return $item;
    }

Bu satır:

$item = $this->_gateway->create($item);

_gateway Koleksiyonu kullandığı adaptör. Hangi ben kullanımı ve boş tutmayız. Belki o bir ilgisi var?

Herkes biraz ipucu var? Her şey olması gerektiği gibi çalıştığından, çünkü collectiondata okuyabilirsiniz. Bu sadece bir hata.

0 Cevap