0

2 つの関数があるとします。1 つ目は要素を含む配列を返し0..N、2 つ目は最初の要素のみを返すか、NULL何もない場合に返す必要があります。

そのようなコードがあると仮定します:

/**
 * return stdClass[]
 */
function foo()
{
    return ...;
}

/**
 * return stdClass|null
 */
function bar()
{
    $arr = foo();

    if ($arr) {
        return $arr[0];
    }
}

ご覧のとおり、の実装bar()は退屈です。

.NET を使用する場合arr.FirstOrDefault()、メソッドを使用すると、タスクに完全に適合します。

PHPでそれを行う最もエレガントな方法は何ですか?

PS: 何らかの警告や通知を生成する回答は受け入れられません。@エラーを抑制するために使用するものと同様に

4

2 に答える 2

1
$return = ($arr = foo()) ? reset($arr) : null;

current を使用できない理由

function foo()
    {
    $array = array(1,2,3);
    next($array);
    return $array;
    }

echo current(foo()); // 2
于 2013-10-22T01:45:38.633 に答える