За последние 24 часа нас посетили 22075 программистов и 1681 робот. Сейчас ищут 1662 программиста ...

goto goto;

Тема в разделе "Вопросы от блондинок", создана пользователем html-программист, 15 фев 2012.

  1. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Можно ли этот фрагмент кода:

    Код (Text):
    1. $a=1;
    2. a:
    3. echo $a;
    4. $a++;
    5. if($a<10) goto a;
    Переписать так, чтобы не использовать в качестве метки название переменной?

    Код (Text):
    1. $a=1;
    2. goto:
    3. echo $a;
    4. $a++;
    5. if($a<10) goto goto;
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    можно. используется не название переменной, а уникальная для исходного кода метка. тынц
     
  3. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    В мануале скачанном с php.net не нашел ничего по поводу ограничений на использование имен меток. Вот конкретно этот "goto" можно в качестве имени метки использовать?
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    goto.php
    Код (PHP):
    1. <?php
    2. goto goto;
    3. goto print;
    4.  
    5. die('nelzya');
    6. goto: die('goto');
    7. print: print('print');
    8. ?>
    Код (Text):
    1. $ php goto.php
    2. PHP Parse error:  syntax error, unexpected T_GOTO, expecting T_STRING in /***/goto.php on line 2
    не, зарезервированные слова не дает
     
  5. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    Ну и правильно :) Незачем зарезервированные слова использовать, тем более в качестве меток :)
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    все-таки наркоман))))
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    у вас все в поряде?

    for ($a = 1; $a < 10; $a++) {
    echo $a;
    }
     
  8. AndreJM

    AndreJM Активный пользователь

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    прям по фрагменту кода =)
    Код (PHP):
    1. $a=1;
    2. do {
    3. echo $a;
    4. $a++;
    5. }while($a < 10);
    6.  
     
  9. html-программист

    html-программист Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    831
    Симпатии:
    4
    Адрес:
    Kiev
    С помощью меток быстрее работает [​IMG]
     
  10. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    ... если это не PHP
     
  11. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Код (PHP):
    1. <?php
    2. $C = 0;
    3.  
    4. start:
    5.  
    6. $t = microtime(true);
    7. $b = 1;
    8. $a = 0;
    9. a:
    10. $a++;
    11. if( $a < 10000000 )
    12. {
    13.     $b = -$b;
    14.     goto a; 
    15. }
    16. echo microtime(true)-$t."\n";
    17.  
    18. $t = microtime(true);
    19. $b = 1;
    20. for($a = 0; $a<10000000; ++$a)
    21. {
    22.     $b = -$b;
    23. }
    24. echo microtime(true)-$t."\n";
    25.  
    26. $t = microtime(true);
    27. $b = 1;
    28. $a = 0;
    29. do
    30. {
    31.     $a++;
    32.     $b = -$b;
    33. }
    34. while( $a < 10000000 );
    35. echo microtime(true)-$t."\n";
    36.  
    37. $C++;
    38. if( 4 == $C )
    39. {
    40.     exit;
    41. }
    42. echo "\n";
    43. goto start;
    44. ?>
    Код (Text):
    1. 1.1081650257111
    2. 1.0973391532898
    3. 1.107549905777
    4.  
    5. 1.1186919212341
    6. 1.0993421077728
    7. 1.1471319198608
    8.  
    9. 1.1145479679108
    10. 1.1113591194153
    11. 1.108038187027
    12.  
    13. 1.0952370166779
    14. 1.1238021850586
    15. 1.1006109714508
    сомнительное утверждение и/или прирост производительности)))
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Апельсин может нарисует =)

    оптимезацыйа блеать!!!
     
  13. Апельсин

    Апельсин Активный пользователь

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    Был бы это баттл java vs c++, я бы блокбастер в пеинте нарисовал)
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    нет худа без добра: я вобще не знал, что в пхп есть гото
     
  15. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Будем считать, что его нет))).