繁星coding
有 3 种变体可以做到这一点:// Variant 1// Anonymous function, variables from the parent scope$Value = 1;$arr = array( 'name' => 'extraFields', 'attributes' => array( 'name' => 'portal', ), 'ifArray' => function() use ($Value) { if ($Value == 1) return array( 'name' => 'portal', 'value'=> '', 'attributes' => array( 'id' => '1', 'value'=> 'testportal', ), ); });print_r($arr['ifArray']());// Variant 2// Anonymous function, variable assignment$arr = array( 'name' => 'extraFields', 'attributes' => array( 'name' => 'portal', ), 'ifArray' => function($Value) { if ($Value == 1) return array( 'name' => 'portal', 'value'=> '', 'attributes' => array( 'id' => '1', 'value'=> 'testportal', ), ); });$Value = 1;print_r($arr['ifArray']($Value));// Variant 3// Ternar operator$Value = 1;$arr = array( 'name' => 'extraFields', 'attributes' => array( 'name' => 'portal', ), 'ifArray' => $Value != 1 ? null : array( 'name' => 'portal', 'value'=> '', 'attributes' => array( 'id' => '1', 'value'=> 'testportal', ) ));print_r($arr['ifArray']);但是,El_Vanja 建议的变体可能比这三个更清楚。