Оглавление

11.4. Оператор конкатенации строк

Подстановка значений переменных. Запуск внешних программ
Оператор . (точка) производит конкатенацию строк, то есть соединяет их в одну строку:

$Z = "Строка1" . "Строка2";
// Переменная $Z будет содержать значение "Строка1Строка2"

Очень  часто  необходимо  сформировать  строку,  состоящую  из  имени  переменной и ее значения. Если написать

$X = "Строка1";
$Z = "Значение равно $X";

то  переменная  $Z  будет  содержать  значение  "Значение  равно  Строка1",  а если написать так:

$X = "Строка1";
$Z = 'Значение равно $X';

то переменная $Z будет содержать значение "Значение равно $X". Помните, что  строка  в  кавычках  и  строка  в  апострофах  вернет  разные  результаты.

 

 В последнем случае, для того чтобы получить значение переменной, можно воспользоваться операцией конкатенации строк:

$X = "Строка1";
$Z = 'Значение равно ' . $X;

Рассмотрим еще один пример. Предположим, нужно объединить два слова в одно. Одно из слов задано с помощью переменной. Если написать

$X = "авто";
$Z = "$Xтранспорт"; // $Z = "" или Notice: Undefined variable

то  переменная  $Z  будет  содержать  пустую  строку,  так  как  переменная $Xтранспорт  не  определена. В  этом  случае можно  воспользоваться  следующими способами:

□ использовать конкатенацию строк:

$X = "авто";
$Z = $X . "транспорт"; // $Z = "автотранспорт"

□ указать имя переменной в фигурных скобках, так:

$X = "авто";
$Z = "${X}транспорт"; // $Z = "автотранспорт"

или так:

$X = "авто";
$Z = "{$X}транспорт"; // $Z = "автотранспорт"

К любому символу строки можно обратиться как к элементу массива. Достаточно  указать  его  индекс  в  квадратных  скобках.  Индексация  начинается  с нуля:

$X = "Привет";
echo $X[0]; // Выведет: П

 

Если  в  переменную нужно  записать  большой  объем  текста,  это можно  сделать способом, продемонстрированным в листинге 10.

 

Листинг 10. Запись в переменную большого объема текста

<?php

$Y=<<<Metka1
<html>
<head>
<title>Строки</title>
</head>
<body>
Metka1;

echo $Y;
$X = "Привет";
echo $X[0]; // выведет "П"
?>
</body>
</html> 

 


В  данном  примере  многострочный  текст  располагается  между  метками (Metka1):

$Y=<<<Metka1
...
Metka1;

Название  метки  может  быть  любым.  Вторая (закрывающая)  метка  должна быть написана с начала строки, и после нее должна стоять точка с запятой.


 Если содержимое строки заключить в обратные кавычки, то это позволит запустить  внешнюю  программу  и присвоить переменной  результат  ее  работы (листинг 11).

 

Листинг 11. Запуск внешней программы

<?php
$X = `dir`;
echo '<textarea cols="70" rows="30">';
echo convert_cyr_string($X, "d", "w");
echo '</textarea>';
?>

 

Данный код выведет содержимое папки C:\Apache2\htdocs. При выводе используется кодировка Dos (кодовая страница 866), поэтому русские буквы будут искажены. Чтобы избежать этого, мы преобразуем кодировку с помощью функции convert_cyr_string ().

Примечания:
  • В кодировке UTF-8 один символ может кодироваться несколькими байтами. По этой причине обратиться к символу как к элементу массива можно только после перекодировки.
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити