1. PHP / Говнокод #17145

    +160

    1. 1
    echo 'some string'."\n";

    )))

    Запостил: GoodTalkBot, 20 Ноября 2014

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

    • Сам таким страдал. За чистоту кавычек! :)
      Еще такой вариант:
      printf 'value: %s%s', $value, "\n";


      Хотя с появлением use feature 'say'; жизнь стала проще :)
      Ответить
      • Перл, пхп, какая нафиг разница, правда?
        Ответить
        • Проблема-то общая
          Ответить
        • Кстати, не только perl и php. У меня ещё наступила безумная радость, когда узнал о существовании в баше конструкции
          echo -n $'$no_interpolate_for_you\n'
          Ответить
    • Сам таким страдал, пока не узнал про константу PHP_EOL.
      Ответить
    • В древности была легенда что одинарные кавычки быстрее работают, так как не поддерживают парсинг переменных. Мне кажется что это уже не актуально лет пятнадцать как.
      ---
      Видел как ПХПпист спорил с сишником о разнице между двойными и одинарными кавычками. Оба спорщика ничего кроме своего языка не знали, было смешно.,
      Ответить
      • Это ещё что! Я видел на одном форуме, как пользователь Duke Nukem'а спорил с пользователем DOS Navigator'а. Оба спорщика кроме своего DN другого не знали, было смешно.
        Ответить
        • Хотел пошутить про цискаря, яблочника и ios, но понял что DN мне всё таки не переплюнуть
          Ответить
          • Есть у меня одна история. Мой любимый редактор использует разные цвета для подсвечивания интерполируемых и не интерпретируемых строк. Так вот, цвет не интерпретируемых мне нравится больше :3
            Ответить
            • А я помню как в начале 90х далекие от вебдевелопа люди путали джаваскрипт и джаву. А еще я видал вакансию "C/C++/C# программист". Мне хотелось подойти и дописать "/1C/csh"
              Ответить
              • Как же тут уютно и лампово.
                Ответить
              • >А еще я видал вакансию "C/C++/C# программист".
                Да и сейчас часто есть C/C++
                Ответить
              • ОбъективС еще
                Ответить
                • В ту пору обжектив си еще не был популярен: ойфонов не было, а про макось (где он тоже использовался) большинство людей и не слыхивало. Это было так давно, что маки были под PowerPC G3 или как там его.
                  Ответить
              • > в начале 90х ... путали джаваскрипт и джаву
                Битва экстрасенсов?
                Это мощно - путали языки ещё до их появления!
                Ответить
                • Ну понятно же что речь о конце 90х и начале 2000х. Вы мысли читать не умеете что ли?
                  Ответить
                  • http://www.youtube.com/watch?v=RfXMxQlUmvQ
                    Ответить
                  • >> Битва экстрасенсов?
                    > Вы мысли читать не умеете что ли?
                    Так koodeer прочитал мысли, но не понял, что именно ему надо в этой передаче участвовать.
                    Ответить
            • > цвет не интерпретируемых мне нравится больше
              mcedit? :)
              Ответить
      • Я гонял полгода назад совсем простенькие тесты (где строка должна была интерполироваться не более трех раз) с большим количеством итераций, разница была на уровне погрешности. Но я все равно использую одинарные просто потому, что привык.
        Ответить
    • Только недавно изучаю php, обьясните пжлста, что не так в этом коде, почему так не надо писать?
      Ответить
      • дело не в конкретном примере, а в самой сути. как уже написали выше, автор пытается увеличить скорость выполнения за счёт использования одинарных кавычек вместо двойных, и всё бы хорошо, но перенос строки \n не работает в одинарных кавычках и ему приходится использовать конкатенацию строк чтобы вставить знак переноса. В итоге, вместо оптимизации получается ещё медленней чем если бы он изначально использовал двойные кавычки вместо одинарных.
        Ответить
        • > увеличить скорость выполнения
          Да почему... Может у него там слеши или доллары в выводимой строке. Или цвет у строки в одинарных кавычках больше нравится.
          Ответить
          • ну может быть и так, но я неоднократно выдел споры между школьниками о том что быстрее выполнится

            echo "here :( ${somevar} )";

            или
            echo 'here :( '.$somevar.' )';
            Ответить
            • {$somevar} ну вы поняли
              Ответить
            • Это конечно очень важный вопрос. 99% приложений на PHP тормозят именно ввиду использования двойных кавычек.
              Ответить
            • Выполняться они будут одинаково. Потому что всяко превратятся в абсолютно одинаковый байткод (с конкатенацией).

              А парситься - х.з., но разница ничтожна.
              Ответить
            • >но я неоднократно выдел споры между школьниками о том что быстрее выполнится
              Ох шии.
              Ну почему всегда речь о таких оптимизациях заходит именно в контексте рнр??!
              Ответить
              • Да потому что это единственная, доступная им характеристика.

                Я как-то на phpclub видел:
                A: а MySQL тысячу пользователей выдержит?
                B: выдержит
                A: а постгря?
                B: выдержит
                A: а тогда какая между ними разница?
                Ответить
              • как говорят снобы "низкий порог вхождения"
                Ответить

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