PHP中是否有条件赋值的简写

时间:2017-06-26 21:04:31

标签: php conditional assign

我有以下(简化)代码片段,我想为变量$ 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);
    ...
}

2 个答案:

答案 0 :(得分:3)

您可以使用变量变量。

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

但是,我将添加我的一般建议:每当你发现自己需要变量变量时,你应该几乎总是使用数组。如果变量类似于$foo1$foo2等,那么它应该是一个索引数组,但在您的情况下,它应该是一个带有键shell和{{1}的关联数组}。

答案 1 :(得分:0)

:jual
set /p prompt=jual-
if %prompt% == varset goto varset
if %prompt% == varview goto varview
if %prompt% == clock goto clock
if %prompt% == games goto games
if %prompt% == exit exit
:clock
cls
echo %time%
echo Press any key to exit.
timeout 0 >nul
goto clock
pause >nul
goto jual