wordpress/php 中的多个三元运算符

multiple ternary operators in wordpress/php

我正在编写如下所示的 php 代码:

$special_reports = new \WP_Query([
    'post_type' => 'cpac-special-report',
    'orderby' => 'menu_order',
    'order' => 'ASC',
    'posts_per_page' => $data->{"toggle_status"} == 3 ? 2 : 4,
    'posts_per_page' => $data->{"toggle_multi_status"} == 1 ? 3 : 4,
    'posts_per_page' => $data->{"toggle_multi_status"} == 2 ? 1 : 4,
    'posts_per_page' => $data->{"toggle_multi_status"} == 3 ? 2 : 4,
    'posts_per_page' => $data->{"toggle_multi_status"} == 4 ? 3 : 4
]);

我想最小化上面的 php 代码并使用多个三元运算符。这就是 我已经尝试过 但我没有得到想要的 o/p。

$special_reports = new \WP_Query([
    'post_type' => 'cpac-special-report',
    'orderby' => 'menu_order',
    'order' => 'ASC',
    'posts_per_page' => $data->{"toggle_multi_status"} == 1 ? 3 : $data->{"toggle_multi_status"} == 2 ? 1 : $data->{"toggle_multi_status"} == 3 ? 2 : $data->{"toggle_multi_status"} == 4 ? 1:4
]);

问题陈述:

我想知道我应该对上面尝试过的 php 代码进行哪些更改,以便

$data->{"toggle_multi_status"} == 1 then it should print 3
$data->{"toggle_multi_status"} == 2 then it should print 1
$data->{"toggle_multi_status"} == 3 then it should print 2
$data->{"toggle_multi_status"} == 4 then it should print 3

您应该将其括在括号中:

$special_reports = new \WP_Query([
        'post_type' => 'cpac-special-report',
        'orderby' => 'menu_order',
        'order' => 'ASC',
        'posts_per_page' => $data->{"toggle_multi_status"} == 1 ? 3 : 
                             ($data->{"toggle_multi_status"} == 2 ? 1 : 
                               ($data->{"toggle_multi_status"} == 3 ? 2 : 
                                 ($data->{"toggle_multi_status"} == 4 ? 1:4)))
    ]);