Поиск

Соединение строк (сцепление, конкатенация)

Хотя термин сцепление, или конкатенация, не очень благозвучен, им обознача ется чрезвычайно важный оператор построение предложения из отдельных фраз, или соединение нескольких строк в одну. Мы будем часто сцеплять стро ки. Для этого предназначен оператор точка ( . ) , который используется анало гично знаку плюс в арифметических выражениях:

$NewString = $aString . $bString;

Таким образом можно связать любое количество строк. К строкам с таким же успехом добавляются числа, которые становятся частью новой строки:

$NewStrir>g = $aString . SbString . $cNumber;

Это работает потому, что, как мы уже обсуждали, РНР относится к языкам со слабой типизацией, то есть переменные не привязаны строго к одному типу данных. Числовая переменная ScTIumber будет автоматически преобразована в строку и добавлена к содержимому неременной $NewString.

Сценарий HandkTonn.php содержит строки, которые так и хочется соеди нить с помощью вновь изученного оператора. Рекомендуется вводить данные имени и фамилии отдельно, как мы сделали в нашей форме. С другой стороны, иногда необходимо трактовать имя и фамилию как единое целое. Изменим сце нарий соответствующим образом.

Использование сцепления в сценарии

  1. Откройте сценарий Han.dleForm.php в текстовом редакторе (листинг 5.2).
  2. Измените строку 11 следующим образом:
  3. Так как имя и фамилия будут объединены в единое целое, больше нет необ ходимости использовать отдельные инструкции (строки 11 и 12. листинг 5.2), no:rvoMv иы заменяете данную строку и модифицируете другую. Сцепление должно быть выполнено после инструкции t r i m ( ) , так как с помощью этой функции невозможно удалить лишние пробелы в строке после сцепления име ни и фамилии. Не забудьте вставить пробел между именем и фамилией, иначе они будут писаться слитно.

  4. Измените строку 12 на следующую:
  5. print ("Your name is $Name.<BR>n") ;
  6. Сохраните сценарий (листинг 5.3), загрузите его на сервер и протестируй те в браузере (рис. )

Листинг 5.3. Сцепление одна из самых распространенных манипуляций со строками. Его можно представить как сложение строк.

1 <HTML>
2 <HEAD>
3 <TITLE>Form Results/Using Strings</TITLEx/HEAD>
4 <BODY>
5 <?php
6 /* Эта страница получает и обрабатывает .данные, принятые
от "form.html". */
7 ,$FirstName = trim($FirstName);
8 $LastName = trim(SLastName);
9 $Email = trim($Email);
10 SComments = trim($Comments);
11 $Name = $FirstName . " " . $LaetName;
12 print ("Your name is $Name.<BR>n");
13 print ("Your Email address is SEmail.<BR>n");
14 print ("This is what you had to say:<BR>n $Cominents<BR>n") ;
15 ?>
16 </BODY>
17 </HTML>
Благодаря интерпретации языком РНР переменных такой же эффект может быть достигнут с помощью функции $Name = "$FirstName $LastName";. Перемен ные, используемые внутри двойных кавычек, заменяются значениями этих пере менных при обработке РНР. Однако формальный метод использования точки для сцепления строк более широко распространен, и я бы порекомендовал следовать именно ему (тогда вам будет "легче разобраться с кодом).
Можно также ввести запись $FirstName = $FirstName . " " . SLastName;, но в принципе этого делать не следует. Вопервых, после такой записи исходное значение переменной $FirstName будет перезаписано. Вовторых, FirstName больше не будет подходящим именем для описания значения переменной. Про граммируя, всегда надо стараться использовать осмысленные имена переменных.