- class Test {
-
- public void goto_test1() {
- int $i = 0;
- a:
- print("Foo $i\n");
- if($i > 5)
- goto b;
- $i++;
- goto a;
- b:
- print("Bar $i\n\n");
- }
-
- public void goto_test2(int $a = 2) {
- switch($a) {
- case 1:
- print("\$a is 1\n\n");
- goto out;
- case 2:
- print("\$a is 2\n\n");
- goto out;
- case 3:
- print("\$a is 3\n\n");
- goto out;
- case 4:
- print("\$a is 4\n\n");
- goto out;
- }
- out:
- }
-
- public void goto_test3() {
- int $a = 10;
- a:
- $a--;
- print("$a\n");
- if($a > 5) {
- goto a;
- }
- print("\n");
- }
-
- public void goto_test4() {
- string[] $headers = {'subject', 'bcc', 'to', 'cc', 'date', 'sender'};
- int $pos = 0;
- int $c;
- hIterator: {
- $c = 0;
- print($headers[$pos], "\n");
- cIterator: {
- print(" ", $headers[$pos][$c], "\n");
- if(!($headers[$pos][++$c])) {
- goto cIteratorExit;
- }
- goto cIterator;
- }
- cIteratorExit: {
- if(array_key_exists(++$pos, $headers)) {
- goto hIterator;
- }
- }
- }
- }
- }
-
- class Program {
- private object $test;
-
- public void __construct() {
- $this->test = new Test();
- }
-
- public void main() {
- $this->test->goto_test1();
- $this->test->goto_test2();
- $this->test->goto_test3();
- $this->test->goto_test4();
- }
-
- }
|