在包含多个语句的数组中设置if语句的最佳实践是什么?
如果'variant_id'是null,使用'external_variant_id'
像下面这样的图片,或者任何其他的洞察力都是有帮助的。

'variant_id'和'external_variant_id'之间存在冲突的示例
  $valued = get_post_meta( $item['data']->get_id(), 'printful_variant_id', true),
  $request['items'] [] = array(
  'variant_id'=> $valued,
  'external_variant_id' => $item['variation_id'] ? $item['variation_id'] : $item['product_id'],更新从Barmar的答案中完全用例
    foreach ( $package['contents'] as $item ) {
    $valued = get_post_meta( $item['data']->get_id(), 'printful_variant_id', true);
    if ($valued) {
        $request['items'] [] = array(
             'variant_id'=> $valued,
            'quantity'            => $item['quantity'],
            'value'               => $item['line_total'] / $item['quantity'],
        );
    }else {
            $request['items'] [] = array(
     'external_variant_id' => $item['variation_id'] ? $item['variation_id'] : $item['product_id'],
            'quantity'            => $item['quantity'],
            'value'               => $item['line_total'] / $item['quantity'],
     );
    }
   }发布于 2020-01-16 02:32:35
使用所有公共键分别创建数组,并对不同的部分使用条件赋值。
$item = array('quantity'            => $item['quantity'],
              'value'               => $item['line_total'] / $item['quantity'],
);
$valued = get_post_meta( $item['data']->get_id(), 'printful_variant_id', true);
if ($valued) {
    $item['variant_id'] = $valued;
} elseif ($item['variation_id']) {
    $item['external_variant_id'] = $item['variation_id'];
else {
    $item['external_variant_id'] = $item['product_id'];
}
$request['items'][] = $item;将其全部压缩到数组分配中是没有好处的。但是您可以使用增强的三元操作符来简化最后一个表达式。
if ($valued) {
    $item['variant_id'] = $valued;
} else {
    $item['external_variant_id'] = $item['variation_id'] ?: $item['product_id'];
}https://stackoverflow.com/questions/59762118
复制相似问题