PHPの外側のfor/foreachループを解除したいと考えています。
これは、次のようにActionScriptで実行できます。
top : for each(var i:MovieClip in movieClipArray)
{
for each(var j:String in nameArray)
{
if(i.name == j) break top;
}
}
PHP同等のものは何ですか?
Break-nステートメントのみを使用できます。
foreach(...)
{
foreach(...)
{
if(i.name == j) break 2; //Breaks 2 levels, so breaks outermost foreach
}
}
PHP> = 5.3を使用している場合は、アクションスクリプトの場合と同様に、ラベルとgoto
sを使用できます。
foreach(...)
{
foreach(...)
{
if(i.name == j) goto top;
}
}
top :
ただし、gotoは慎重に使用する必要があります。後藤は悪(悪い習慣と見なされます)
break 2;
を使用して、同時に2つのループから抜けることができます。 「名前付き」ループを使用した例とはまったく異なりますが、うまくいきます。
$i = new MovieClip();
foreach($movieClipArray as $i)
{
$nameArray = array();
foreach($nameArray as $n) if($i->name==$n) break 2;
}
Gotoを使う?
for($i=0,$j=50; $i<100; $i++)
{
while($j--)
{
if($j==17)
goto end;
}
}
echo "i = $i";
end:
echo 'j hit 17';