"PHP" / Говнокод #4551 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
function testPrint($str){


	return $str;        

}
print testPrint("<br>");

Недавно видел такую полезную функцию:)

Запостил: dexif dexif, (Updated )

Комментарии (19) RSS

      • конечно же нет.
        не надо путать рекурсию и бесконечный цикл. вайл тру у вас вылетит по таймауту, а рекурсивный вызов вылетит по таймауту зажрав памяти на каждое вызванное тельце. так то.
        Ответить
            • Я там вижу "...", т.е. там может быть что угодно, в том числе и брейк.
              Ответить
              • многоточие, в этом случае, работает подобно пятну роршаха.

                если вы, на сайте говнокод ру, в безконечном цыкле от пхп-гуру мартина подразумеваете брейк, то у меня для вас новость: вы - восторженный оптимист.
                Ответить
        • мне кажется, переполнение стека произойдет быстрее таймаута. Вроде бы максимальный уровень вложенности в похапе по умолчанию 100
          Ответить
          • function testPrint($str = 0){
            echo '<br />' . $str;
            $str = $str + 1;
            return testPrint($str);
            }
            testPrint(0);

            итого: 25762
            вы ошиблись всего на два порядка.
            Ответить
          • У PHP нет контроля уровня вложенности, стек кончился, отвалился с Segmentation Fault и все.
            Ответить
      • Нет, while(true) {...} работает нормально, а вот function testPrint($str){return testPrint($str);} типичный segmentation fault.
        Ответить
  • скорее всего в функции строка на что-то проверялась, а потом эту проверку убрали, дабы не шерстить в поисках функции по коду
    Ответить
    • Ну ладно когда используется ну 2-3 раза в коде... но весь вывод идёт через эту функцию... НАФИГА интерпретатору давать лишнюю работу? Или автозамену отменили?
      Да что там... файл с этой функцией последний раз изменён был в 2007 году... а все новые скрипты продолжают использовать её...
      Ответить
      • потому как теперь код легко расширяем.
        фильтр вывода - пожалуйста. замена тегов - легко.
        Ответить
          • да, но в таком подходе не достаточно ООП и название текущей функции немного не отражает ее назначение. и вообще тут - место для хука.
            Ответить
  • function testPrint($str){
    	if ( function_exists('testPrint') && $str ) {
    		return $str;
    	} else {
    		return false;
    	}
    }
    print testPrint("<br>");

    --
    а может там была проверка стандартов?
    "<br>" или "<br />"...
    Ответить
    • не понял смысла.
      лучше так:
      if (!function_exists('testPrint')) {
      	function testPrint($str){
      		return $str;
      	}
      }
      Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8