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

Почему при выводе пишут обратный слэш при переменных ?

<? php
$a = "Жизнь";
echo  "\$a=",$a , "<BR>" ;
echo "\$b = \$a.\ ", прекрасна  \"<BR>" ;
$b = $a . "прекрасна" ; 
echo "Теперь  \$b = ", $b, "<BR>" ; 
// далее непонятно:
echo "\$b. = \" и удивительна. \ ""< BR > " ; 
$b. = "и удивительна." ;
echo "Теперь \$b " , $b , "<BR>";
?> 
vedro-compota's picture

здесь что-то не то с кавычками - видимо опечатка или проблема при сканировании книги - вы пробовали запустить код?

echo "\$b = \$a.\ ", прекрасна  \"" ;

А вообще обратный слэш (обратная косая черта) экранирует доллар в двойных кавычках - то есть лишает его особого смысла знака, который позволяет встроить значение. Точно также внутри двойных кавычек приходится экранировать символ двойных кавычек -
сравните, запусти код:

$a  = 1; // присвоим значение
// далее к каждой печатуемой строке я буду прибавлять разделитель
echo "$a" . ' | ';
echo $a  . ' | ';  
echo "переменная а = $a"  . ' | '; // двойные без экранирования
echo "переменная а = \$a" . ' | '; // двойные с экранированием
echo 'переменная а = $a' . ' | '; // одинарные без экранирования

вы должны получить что-то вроде:

1 | 1 | переменная а = 1 | переменная а = $a | переменная а = $a |

Ещё примеры экранирования см. здесь.

_____________
матфак вгу и остальная классика =)