Уроки PHP – рядки

У цьому уроці ми детально розглянемо, що таке рядки в PHP, як їх використовувати, а також розглянемо найпростіші функції маніпуляції з рядками.

Рядки в PHP: основи

Рядок (string) – це тип даних в PHP та набір символів. У PHP вбудована підтримка 256 різних символів.

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

  • одинарні лапки
  • подвійні лапки
  • heredoc-синтаксис

Вам вирішувати, який спосіб використовувати, адже у кожного з них є свої плюси і мінуси.

Примітка: в уроці використовуються практичні приклади. Щоб перевірити нові знання, рекомендуємо вам створити тестовий PHP файл та запускати його на вбудованому PHP-сервері. Як це зробити ви можете побачити з уроку по PHP 7.

  1. Перший і найбільш відомий спосіб – визначити рядок з використанням одинарних лапок. Так само, як і в інших мовах програмування, вам потрібно використовувати зворотну косу риску ‘\‘, якщо ви хочете відобразити в тексті одинарні лапки:
<?php
$stroka_1 = 'Якийсь текст';
$stroka_2 = 'Текст з одинарною лапкою (\')';
echo $stroka_1;
echo $stroka_2;
?>

  1. Другий варіант полягає у використанні подвійних лапок. У цьому способі можна використовувати змінні в рядку (без закриття рядка), а PHP буде інтерпретувати змінну та відобразить її вміст:
<?php
$stroka_1 = "Якийсь текст";
$stroka_2 = "Текст з подвійними лапками (\")";
$zminna = "Змінна";
$stroka_3 = "У цьому рядку використовується $zminna";
echo $stroka_1;
echo $stroka_2;
echo $stroka_3;
?>

Тут найбільш важливою частиною є рядок, визначений як змінна $stroka_3, а її вивід буде наступний:

У цьому рядку використовується Змінна

  1. І нарешті, ви можете використовувати heredoc-синтаксис. В цьому випадку ви поміщаєте потрібний текст між ідентифікаторами heredoc. В даному випадку ідентифікатором виступає HTML (ви можете використовувати інший). Вам потрібно вказати перед ідентифікатором оператор <<<. Рядок закривається ідентифікатором та крапкою з комою:
<?php
$stroka_1 = <<<HTML
  Тут ми використовуємо heredoc-синтаксис.
  Дуже важливо, щоб рядок з закриваючим ідентифікатором не містив інших символів, за винятком крапки з комою (;).
  Перед ідентифікатором не повинно бути пробілів, а перед, та після крапки з комою не повинно бути ніяких пробілів або знаків табуляції.
HTML;
echo $stroka_1;
?>

В результаті текст буде виведений з використанням зазначеного формату – з урахуванням відступів і нових рядків. У цьому способі так само можна використовувати змінні, як і у випадку рядків в подвійних лапках.

Спосіб №2 є найбільш цікавою версією визначення рядка, тому давайте ще трохи подивимося, як використовувати змінні в рядках.

Розбір змінних в рядку

Іноді вам може знадобитися використовувати змінні в рядку. Наприклад, якщо у вас в змінну записується ім’я користувача, і ви хочете привітати цього користувача по імені, наприклад, так:

"Привіт, Іван, радий тебе бачити!"

Плюс цього методу полягає в тому, що ви можете використовувати змінну типу $userName, в яку буде записано ім’я поточного користувача. І з використанням змінної ви будете показувати кожному користувачеві його унікальне ім’я. Якщо використовувати рядок в одинарних лапках, це може виглядати так:

<?php
$userName = "Іван";
echo 'Привіт '. $userName .', радий тебе бачити!';
?>

Використовуючи подвійні лапки, це можна зробити простіше:

<?php
$userName = "Іван";
echo "Привіт $userName, радий тебе бачити!";
?>

Конкатенація рядків

Як ви могли бачити в попередньому прикладі, ми використовували конкатенацію (об’єднання) рядків. Тепер давайте подивимося в деталях, як ми можемо ще об’єднувати рядки.

У PHP ви можете об’єднати рядок, використовуючи оператор конкатенації – крапку (.). Нижче розглянуті різні способи об’єднання рядків:

<?php
// Використовуємо тільки один тип лапок
$stroka_1 = "Це "."якийсь"." тестовий "."текст";

// Використовуємо різні типи лапок
$stroka_2 = 'Це '."якийсь".' тестовий текст';

// Або розділяємо рядок на кілька рядків
$stroka_3  = "Це";
$stroka_3 .= " якийсь";
$stroka_3 .= " тестовий текст";

$stroka_4 = "Це"
. " якийсь"
. " тестовий текст";
?>

Маніпулювання рядками

У цьому пункті ми розглянемо маніпулювання рядками тільки по символам. Як ви знаєте, рядки являють собою набір символів. Це означає, що ви можете використовувати цей набір як окремий рядок. Наприклад, якщо у вас є строкова змінна $name зі значенням «Ivan», ви можете отримати доступ до першої букви (I) використовуючи такий запис $name[0]:

<?php
$name = 'Ivan';
for ($i = 0; $i < 5; $i++){
  echo "{$name[$i]}<br>";
}
?>

І якщо ви можете отримати доступ до набору символів, ви, звичайно, можете змінювати елементи один за другим, наприклад, так:

<?php
$name = 'Ivan';
$name[4] = 'o';
$name[5] = 'v';
echo $name;
?>

Тут ми додали нові символи до масиву символів, в результаті повинно вийти Ivanov. Якщо вам потрібно змінити певний символ, тоді використовуйте його індекс з новим значенням. Наприклад, щоб замінити букву ‘n‘, використовуйте наступну конструкцію:

$name[3] = 's';

Тоді вийде Ivasov. Не забувайте, що відлік йде не з одиниці, а з нуля, тобто, перший символ має індекс 0.

Tags: php

Recent Posts

Опалення і гаряча вода коли треба, а не коли включать

Тепло в домі і гаряча вода в будь-який час для багатьох мешканців багатоквартирних та приватних… Read More

19/09/2020

Що краще: цифрове телебачення Т2 чи інтернет-телебачення

Сучасне життя неможливо уявити без телебачення. Воно дозволяє дізнаватися про події в Україні та світі,… Read More

02/09/2020

Гіпоалергенна подушка. Чому вона важлива?

Зараз знайдеться мало людей, в яких немає алергії на продукти або пилок рослин. Вважається, що… Read More

28/08/2020

Футбольний Інстаграм – що нового у топових футболістів

Деякі відомі футболісти ретельно приховують свої особисте життя, а інші – активно постять фотографії з… Read More

24/08/2020

Види та типи компресійних панчіх

Вироби називають компресійними, коли їх застосовують для лікування, а також профілактики порушень кровотоку в нижніх… Read More

22/08/2020

Як правильно замінити оливу у двотактному гідроциклі?

Гідроцикли – це класний плавзасіб, який може подарувати вам незліченні години приємного проведення часу на… Read More

19/08/2020