О двойных кавычках

February 2, 2009 by Andrew Tch · 8 Comments 

Открывается рубрика code.smart, в которой я буду анализировать тот быдлокод, что попадается временами.

Начало простое:

что есть:

"2|".$shop."|".$spy->host."\n";

что плохо – двойные кавычки в PHP подвергаются подстановке, или экспансии переменных. Это значит, что конкатенацию можно не использовать и писать так:

"2|$shop|$spy->host\n";

Comments

8 Responses to “О двойных кавычках”
  1. Filosoff says:

    как бы лучше писать ’2|’.$shop.’|’.$spy->host.”\n”;
    а ты как раз предложил вариант быдлокода. no offence.

  2. Andrew Tch says:

    Твой вариант – уже полностью оптимален ). И кстати, с каких пор использование экспансии – быдлокод? Просто использование возможностей PHP. Надо попробовать замерить скорость выполнения.

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

  3. Filosoff says:

    уже замеряли. с одинарными кавычками работает быстрее. потому что не обрабатывается содержимое кавычек.

  4. Danaki says:

    Первый однозначно быстрее. Будет еще быстрее, если в апострофы поставить. А твой пример к тому же заставляет думать а не будет ли ‘->host’ распечатано как есть, что черевато багами.

  5. Andrew Tch says:

    Данаки, ты о чем? Если нет свойства host, вывалится и так и так. А вообще, тема вроде была о том что можно:
    1) конкатенировать ‘ ‘
    2) конкатенировать ” ”
    3) использовать двойные кавычки и подстановку переменных
    и моя мысль мбыла о том что 1) 3) – это ок, а вот 2) – перебор.

  6. Nikita says:

    А разве не лучше так: “2| {$shop} | {$spy->host} \n”?

  7. Andrew Tch says:

    Если не знать для чего нужен такой синтаксис, то да, но у тебя вроде вебшкола есть, Ник?
    Синтаксис с кавычками используется в том случае, когда есть вероятность что название переменной сольется с текстом после нее, например:

    $var = 1;
    print “$var abcdef”; – сработает ок
    print “$varabcdef”; – скажет, что нет переменной $varabcdef

    но даже в таком случае этот синтаксис выглядит по-другому, а именно

    print “${var}abcdef”;

    запиши в программу курсов!

  8. Nikita says:

    Мне это не нужно, я PHP не учу. Просто вспомнил про такой синтаксис

Speak Your Mind

Tell us what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!