За последние 24 часа нас посетили 22728 программистов и 1258 роботов. Сейчас ищет 731 программист ...

Экранирование (\' или ")?

Тема в разделе "PHP для новичков", создана пользователем php_user, 26 апр 2014.

  1. php_user

    php_user Новичок

    С нами с:
    19 апр 2014
    Сообщения:
    91
    Симпатии:
    0
    Что лучше
    Код (Text):
    1. echo '<p><option value=\'\''.$myrow['id'].'\'>'.$myrow['name'].'</option></p>';
    2. //или
    3. echo '<p><option value=""'.$myrow['id'].'">'.$myrow['name'].'</option></p>';
    И второй вопрос- как разукрасить код в разные цвета?
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    В HTML принято использовать двойные кавычки, так что второй вариант. Только в обоих вариантах у тебя одна лишняя кавычка перед $myrow.
    Код (PHP):
    1.  
     
  3. php_user

    php_user Новичок

    С нами с:
    19 апр 2014
    Сообщения:
    91
    Симпатии:
    0
    спс, исправил

    не работает
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    Код (PHP):
    1. echo '<p><option value="'.$myrow['id'].'">'.$myrow['name'].'</option></p>';
    Код (PHP):
    1.  значит =)
     
  5. php_user

    php_user Новичок

    С нами с:
    19 апр 2014
    Сообщения:
    91
    Симпатии:
    0
    Код (PHP):
    1. echo '<p><option value=\'\''.$myrow['id'].'\'>'.$myrow['name'].'</option></p>';
    2. //или
    3. echo '<p><option value=""'.$myrow['id'].'">'.$myrow['name'].'</option></p>';
    да, все ок
     
  6. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Я не обращаю внимание на тип кавычек. Обычно использую одинарные.
     
  7. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Профит одинарных кавычек: в них не парсятся и не требуют слешинга никакие служебные символы, кроме \ и ';
    Фейл одинарных кавычек: не запилишь перевод строки, например;

    Профит двойных кавычек: в них парсятся, НО требуют слешинга овер9000 служебных символов. Можно пилить любое форматирование. И переменные парсятся, хотя мне не нра такое.
    Фейл двойных кавычек: малость муторные из-за вышеописанных свойств.

    Итог: и то и то хорошо там, где оправдывает свое применение.
     
  8. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    а я их обожаю за то что переменные можно пихать.
     
  9. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Это ладно еще, когда IDE корректно парсит такую строку... Мне вот кажется удобнее и нагляднее через конкатенацию фигачить. Универсальнее. Туда можно не только переменную, но и любое выражение, функцию, тернарник закинуть. Каждому свое, как грицца :)
     
  10. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    В таком варианте и подсветка работает, и удобно копипейстить фрагменты HTML и сами переменные, и об эскейпинге не надо думать:
    Код (PHP):
    1. printf('%s<p><option value="%s">%s</option></p>%s', "\t\t", $myrow['id'], $myrow['name'], "\n"); 
     
  11. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    где ты там подсветку увидел? =) жесть. как это читать?
     
  12. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    ... и переименовать переменную в IDE автоматом можно, и отделение логики от представления...
     
  13. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    Дык и так можно переименовать. И отделение логики тут при чем? Это же уже способ вывода. Поздняк уже отделять.