Tek adımda bunu yapmanın bir yolu var mı?

5 Cevap php

$clients = $CLIENT->find($options); $client = $clients[0];

EDIT: Ben açık olmalı Gerçekleşen. $ MÜŞTERİ-> bulmak daima nesneleri bir dizi döndürür, ama sadece bir nesnenin içine dizi (yani sadece 1 nesne olacak) döner bir satır kod istiyorum.

5 Cevap

$client = reset($CLIENT->find($options));

Edit: İşte az karartılmış biri, muhtemelen yerine bunu kullanmalısınız:

list($client) = $CLIENT->find($options);

Onlar olsa özdeş değildir; İlki de (bir işlevin parametre listesi içinde) bir tek skalar beklenen yerlerde çalışacak ancak ikinci (list() void döndüren) olmaz.

($CLIENT->find($options))[0] (IIRC Ben PHP sanmıyorum, ama bunun için benim sözüme değil) çalışır sürece, ben bunu yoğunlaşmasına sanmıyorum. Gerçekten de, bu endişe değer olduğunu sanmıyorum - bunun için bir tek-deyim ifade gerekiyorsa, sadece bir fonksiyon yazmak.

function fozzyle($options) {
    $clients = $CLIENT->find($options);
    return $clients[0];
}

$ Client = $ client-> find ($ seçenekler) [0];

çalışmıyor?

$ Client = array_shift ($ client-> find ($ seçenekler));

Find () bir şey çıkmıyorsa eğer $ client nesne veya null olacaktır.

Eğer kabul mü method-chaining?

Bu kod sadece bir satır ile bir sürü yapmak sağlayacaktır. Bu daha büyük ve daha uzun vadeli OO çözümler için daha iyi olacağını da unutmayın. Sadece hızlı ve kirli bir çözüm, bir dizide ilk öğeyi döndürür belki de sadece özel bir işlev gerekir.

Biri yöntemi-zincirleme için iyi bir referans bulabilirsiniz Eğer Help:, bu güncelleyin.