5

変数を初期化するときに、複雑すぎて1つのコマンドで計算できない値を渡したい場合があるため、通常は、前にダミー変数を計算してからその値を渡すか、別の場所で関数を定義して、その戻り値をに渡します。私たちの変数。

私の質問(願い)は、代わりに無名関数を使用してオンザフライで変数を計算することは可能ですか?

たとえば、これを使用する代わりに:

$post = get_post();
$id = $post->ID;

$array = array(
    'foo' => 'hi!',
    'bar' => $id
);

次のようなものを使用してみましょう:

$array = array(
    'foo' => 'hi!',
    'bar' => (function(){
        $post = get_post();
        return $post->ID;
    })
);

コードは完全にランダムです。

4

1 に答える 1

1

あなたの例では、以下はうまくいくでしょう:

$array = array('foo'=>'hi!','bar'=>(get_post()->ID));

ただし、質問がもう少し自由形式であり、コードスニペットに固有ではないことを考慮すると、このスタックオーバーフローの回答は受け入れられる場合があります。

$a = array('foo' => call_user_func(
    function(){
        $b = 5;
        return $b;
    })
);
var_dump($a);
于 2012-09-05T00:13:29.190 に答える