在 PHP 中是否有用于条件分配的 shorthand

Is there a shorthand for conditional assigning in PHP

我有以下(简化的)代码片段,我想根据特定条件为变量 $shell 或 $hole 赋值($ringIndex===1)

foreach($rings as $ringIndex=>$ring) {
    $polygon = $this->getPolygonFromRing($ring);
    if($ringIndex===1) {
        $shell = $polygon;
    } else {
        $hole = $polygon;
    }
    .... 
}

如果没有必要,我不想使用额外的变量($polygon)

我想也许这样的事情会奏效:

foreach($rings as $ringIndex=>$ring) {
    ($ringIndex===1?$shell:$hole) = $this>getPolygonFromRing($ring);
    ...
}
foreach($rings as $ringIndex => $ring){
    $var = $ringIndex === 1 ? 'shell' : 'hole';
    $$var = $this->getPolygonFromRing($ring);
}

你可以使用变量变量。

foreach($rings as $ringIndex=>$ring) {
    ${$ringIndex===1?'shell':'hole'} = $this->getPolygonFromRing($ring);
    .... 
}

但是,我将添加我的一般建议:任何时候您发现自己需要可变变量时,您几乎应该总是使用数组来代替。如果变量像 $foo1$foo2 等,那么它应该是一个索引数组,但在您的情况下,它可能应该是一个带有键 shell 和 [=14= 的关联数组].