PHP Doku:: goto - control-structures.goto.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchSprachreferenzKontrollstrukturengoto

Ein Service von Reinhard Neidl - Webprogrammierung.

Kontrollstrukturen

<<include_once

Funktionen>>

goto

Der goto-Operator kann benutzt werden um innerhalb eines Programs zu einer anderen Anweisung zu springen. Die Zielanweisung wird durch einen Namen gefolgt von einem Doppelpunkt festgelegt und der goto-Anweisung wird der entsprechende Zielname angefügt.

Beispiel #1 goto-Beispiel

<?php
goto a;
echo 
'Foo';
 
a:
echo 
'Bar';
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Bar

Hinweis:

Der goto-Operator ist ab PHP 5.3 verfügbar.

Warnung

Es ist nicht gestattet in eine Schleife oder eine Switch-Anweisung hineinzuspringen, in so einem Fall wird ein fataler Fehler geworfen.


2 BenutzerBeiträge:
- Beiträge aktualisieren...
tweston at coldsteelstudios dot com
6.10.2010 5:12
In a challenge of myself for a college class I decided to use the goto to remove all while loops from my code. It was actually easy, and AS FAST as While loops.

<?PHP
$start
= microtime(true);
$i = 0;
StartOfLoop:
$i++;
if(
$i < 1000000) goto StartOfLoop;

echo
microtime(true) - $start.PHP_EOL;

$start = microtime(true);
$i = 0;
while(
$i < 1000000){
   
$i++;
}

echo
microtime(true) - $start.PHP_EOL;
?>
chrisstocktonaz at gmail dot com
8.08.2009 0:03
Remember if you are not a fan of wild labels hanging around you are free to use braces in this construct creating a slightly cleaner look. Labels also are always executed and do not need to be called to have their associated code block ran. A purposeless example is below.

<?php

$headers
= Array('subject', 'bcc', 'to', 'cc', 'date', 'sender');
$position = 0;

hIterator: {

   
$c = 0;
    echo
$headers[$position] . PHP_EOL;

   
cIterator: {
        echo
' ' . $headers[$position][$c] . PHP_EOL;

        if(!isset(
$headers[$position][++$c])) {
            goto
cIteratorExit;
        }
        goto
cIterator;
    }

   
cIteratorExit: {
        if(isset(
$headers[++$position])) {
            goto
hIterator;
        }
    }
}
?>



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)