О двойных кавычках
February 2, 2009 by Andrew Tch · 8 Comments
Открывается рубрика code.smart, в которой я буду анализировать тот быдлокод, что попадается временами.
Начало простое:
что есть:
"2|".$shop."|".$spy->host."\n";
что плохо – двойные кавычки в PHP подвергаются подстановке, или экспансии переменных. Это значит, что конкатенацию можно не использовать и писать так:
"2|$shop|$spy->host\n";
как бы лучше писать ’2|’.$shop.’|’.$spy->host.”\n”;
а ты как раз предложил вариант быдлокода. no offence.
Твой вариант – уже полностью оптимален ). И кстати, с каких пор использование экспансии – быдлокод? Просто использование возможностей PHP. Надо попробовать замерить скорость выполнения.
Я, собственно, к тому что использовать двойные кавычки и конкатенацию – жесть. И к тому же, много конкатенаций – много мелких мест для опечаток и ошибок – даром ее в документации используют мало.
уже замеряли. с одинарными кавычками работает быстрее. потому что не обрабатывается содержимое кавычек.
Первый однозначно быстрее. Будет еще быстрее, если в апострофы поставить. А твой пример к тому же заставляет думать а не будет ли ‘->host’ распечатано как есть, что черевато багами.
Данаки, ты о чем? Если нет свойства host, вывалится и так и так. А вообще, тема вроде была о том что можно:
1) конкатенировать ‘ ‘
2) конкатенировать ” ”
3) использовать двойные кавычки и подстановку переменных
и моя мысль мбыла о том что 1) 3) – это ок, а вот 2) – перебор.
А разве не лучше так: “2| {$shop} | {$spy->host} \n”?
Если не знать для чего нужен такой синтаксис, то да, но у тебя вроде вебшкола есть, Ник?
Синтаксис с кавычками используется в том случае, когда есть вероятность что название переменной сольется с текстом после нее, например:
$var = 1;
print “$var abcdef”; – сработает ок
print “$varabcdef”; – скажет, что нет переменной $varabcdef
но даже в таком случае этот синтаксис выглядит по-другому, а именно
print “${var}abcdef”;
запиши в программу курсов!
Мне это не нужно, я PHP не учу. Просто вспомнил про такой синтаксис