PHP - dizi bir işlev tarafından döndürülen olduğunda diziden nesneyi almak nasıl?

3 Cevap php

Bu dizi bir işlev tarafından döndürülen zaman nasıl bir nesnesi diziden alabilirim?

class Item {
    private $contents = array('id' => 1);

    public function getContents() {
        return $contents;
    }
}

$i = new Item();
$id = $i->getContents()['id']; // This is not valid?

//I know this is possible, but I was looking for a 1 line method..
$contents = $i->getContents();
$id = $contents['id'];

3 Cevap

Sen 2 satırı sürümünü kullanmanız gerekir. Aşağı kodunuzu ezmeye zorlayıcı bir nedeniniz olmadıkça, hiçbir neden not Bu ara değere sahip var.

Ancak, gibi bir şey deneyebilirsiniz

$id = array_pop($i->getContents())

Iki satır tutun - tekrar dizisine erişmek için varsa, orada olacak. Aksi takdirde zaten çirkin olmanın sona erecek olan, tekrar işlev çağırarak olacak.

Bu eski bir soru olduğunu biliyorum, ama bu benim için bir satır regüler olacaktır:

PHP >= 5.4

Sizin regüler PHP> = 5.4 ile çalışması gerekir

$id = $i->getContents()['id'];

PHP < 5.4:

class Item
{
    private $arrContents = array('id' => 1);

    public function getContents()
    {
        return $this->arrContents;
    }

    public function getContent($strKey)
    {
        if (false === array_key_exists($strKey, $this->arrContents)) {
            return null; // maybe throw an exception?
        }

        return $this->arrContents[$strKey];
    }
}

$objItem = new Item();
$intId   = $objItem->getContent('id');

Sadece tuşu ile değeri almak için bir yöntem yazmak.

Saygılarımızla.