Можно ли этот фрагмент кода: Код (Text): $a=1; a: echo $a; $a++; if($a<10) goto a; Переписать так, чтобы не использовать в качестве метки название переменной? Код (Text): $a=1; goto: echo $a; $a++; if($a<10) goto goto;
В мануале скачанном с php.net не нашел ничего по поводу ограничений на использование имен меток. Вот конкретно этот "goto" можно в качестве имени метки использовать?
goto.php Код (PHP): <?php goto goto; goto print; die('nelzya'); goto: die('goto'); print: print('print'); ?> Код (Text): $ php goto.php PHP Parse error: syntax error, unexpected T_GOTO, expecting T_STRING in /***/goto.php on line 2 не, зарезервированные слова не дает
Код (PHP): <?php $C = 0; start: $t = microtime(true); $b = 1; $a = 0; a: $a++; if( $a < 10000000 ) { $b = -$b; goto a; } echo microtime(true)-$t."\n"; $t = microtime(true); $b = 1; for($a = 0; $a<10000000; ++$a) { $b = -$b; } echo microtime(true)-$t."\n"; $t = microtime(true); $b = 1; $a = 0; do { $a++; $b = -$b; } while( $a < 10000000 ); echo microtime(true)-$t."\n"; $C++; if( 4 == $C ) { exit; } echo "\n"; goto start; ?> Код (Text): 1.1081650257111 1.0973391532898 1.107549905777 1.1186919212341 1.0993421077728 1.1471319198608 1.1145479679108 1.1113591194153 1.108038187027 1.0952370166779 1.1238021850586 1.1006109714508 сомнительное утверждение и/или прирост производительности)))