Jochen: Rekursive Funktion liefert ungewünschtes Ergebnis

Beitrag lesen

Hallo Rolf,

// Überspringe den Rest des myX UND myY-Durchlaufs!
continue 2;
}

PhP-Storm meldet: Cannot break/continue 2 level(s) und markiert es als Fehler.

Edit: Missverständnis, Du meintest so:

function suche_freiraum($line = 842,$img2)
{
    $freiraum = $failed = 0;
    $fp = fopen($_SERVER['DOCUMENT_ROOT']."/tmp/pixel.txt",'a+');
    for($myY = $line;$myY > 500;$myY--) {
        for($myX = 0;$myX < 530;$myX++) {
            $pixel = $img2->getImagePixelColor($myX,$myY);
            $colors = $pixel->getColorAsString();
            if($colors != "srgba(255,255,255,0)" && $colors != "srgb(255,255,255)") {   // wenn kein weißes Pixel
                $failed++;
                $freiraum = 0;
//              $now = DateTime::createFromFormat('U.u',microtime(true));
//              fwrite($fp,$now->format("d.m.Y H:i:s.u").": ");
//              fwrite($fp,"line ".$myY.": failed\n");                
                continue 2;
            }
        }
        $freiraum++;
//            $now = DateTime::createFromFormat('U.u',microtime(true));
//            fwrite($fp,$now->format("d.m.Y H:i:s.u").": ");
//            fwrite($fp,"line ".$myY.": all white. Freiraum = ".$freiraum."\n");
        if($freiraum == 125) {
            fclose($fp);
            return $myY;
        }
    }
    fclose($fp);
    return 0; // kein Freiraum gefunden
}

Jochen