Я знаю, что в последних нескольких статьях мы рассматривали строки, но на самом деле никогда не говорили о них. Строка - это просто последовательность символов, заключенная в кавычки; строки в PHP помещаются в одинарные или двойные кавычки. В других языках программирования, таких как Java, строки заключаются в двойные кавычки, а отдельные символы заключаются в одинарные кавычки.

<?php
$string_1 = 'This is an acceptable string';
$string_2 = "String with double quotes";
echo $string_1 . "<br>";
echo $string_2 . "<br>";
?>

Вам не нужно хранить строки в переменных, чтобы выводить их на экран. Вы можете просто повторить их.

<?php
echo "I'm a string that's directly echoed out.";
?>

Из приведенного выше примера видно, что PHP оценивает только внешние двойные кавычки. Внутри оператора echo есть одинарные кавычки. Эти одинарные кавычки окружены двойными кавычками, поэтому ошибки не возникает. Если бы мы заключили всю строку в одинарные кавычки, у нас возникла бы проблема.

<?php
// Causes an error
echo 'I'm a string that's directly echoed out';
?>

Проблема с этим кодом в том, что интерпретатор PHP начинает смотреть на код и говорит:

  1. Я вижу эхо-заявление.
  2. Ищите открытую цитату, переменную, константу ... (или что-то еще приемлемое).
  3. Нашел открытую цитату, и это одинарная цитата. Мне нужно найти заключительную одинарную кавычку, чтобы закончить это утверждение.
  4. Обнаружил одинарную кавычку сразу после первого символа. Мне нужно искать точку с запятой.
  5. Нашел что-то кроме точки с запятой. Выкинь ошибку.

Если вы настаиваете на использовании одинарных кавычек, окружающих всю строку, и используете их внутри самой строки, вам придется «экранировать» символ одинарной кавычки. Проблемный символ может быть экранирован обратной косой чертой \.

<?php
// Won't cause errors
echo 'I\'m a string that\'s directly echoed out';
?>

В большинстве случаев это намного проще, если вы просто смешиваете и сочетаете.

  1. Если вы собираетесь использовать одинарные кавычки внутри строки, заключите их в двойные кавычки.
  2. Если вы собираетесь использовать двойные кавычки только внутри строки, заключите их в одинарные кавычки.
  3. Если вы используете внутри строки как одинарные, так и двойные кавычки, заключите их в то, что вы сочтете наиболее подходящим. Вам нужно будет экранировать одинарные или двойные кавычки внутри строки.
<?php
echo "I'm a single quote inside the double quotes.";
echo 'Jeff said "how is it going?"';
echo "Jeff's wife said, \"I'm good.\"";
?>

Большая разница между одинарными и двойными кавычками начинается, когда вы смотрите на оценку переменных.

<?php
$name = "Dino Cajic";
echo "Hi, my name is $name";
?>

Если вы запустите код, вы увидите на экране следующий результат:

Привет, меня зовут Дино Каджик

С одинарными кавычками получается немного иначе.

<?php
$name = "Dino Cajic";
echo 'Hi, my name is $name';
?>

Результатом будет:

Привет меня зовут $ name

Если вы действительно хотите использовать одинарные кавычки, вы можете объединить (присоединить) переменную с помощью оператора конкатенации (точка). Или вы можете использовать отдельный оператор эха. Чуть позже мы рассмотрим оператор конкатенации более подробно.

<?php
$name = "Dino Cajic";
echo 'Hi, my name is ' . $name;
// or even use a separate echo statement
echo 'Hi, my name is ';
echo $name;
?>

Нам не нужно хранить строки внутри наших переменных. Мы можем хранить другие типы данных, например целые числа. После добавления в строку PHP будет рассматривать оператор echo как вывод одной большой строки.

<?php
$price = 100000;
echo "The price of that car is $price";
?>

Результат покажет: Цена этой машины - 100000.

Что, если вы хотите поставить перед ним знак доллара? На самом деле это довольно просто. Просто продолжайте и добавьте это.

<?php
$price = 100000;
echo "The price of that car is $$price";
?>

На выходе получится: Цена этой машины 100000 долларов.

Есть одна странная вещь, и мы рассмотрим ее более подробно позже, но я действительно хотел представить ее. Вы можете добавить к строке знак доллара, и он будет оценивать ее как переменную. Кроме того, если вы добавите знак доллара к переменной, содержащей строку, и окружите ее парой фигурных скобок, он будет оценивать переменную внутри фигурных скобок, а затем рассматривать строку, добавленную к знаку доллара, как переменную. . Я знаю много слов, но давайте просто рассмотрим пример и рассмотрим его.

<?php
$price = 100000;
$x = "price";
echo "That car is selling for ${$x}";
?>

Если вы запустите код, он отобразит:

Эта машина продается за 100000

Что сейчас произошло?

  1. PHP посмотрел на оператор echo.
  2. Он обнаружил знак доллара внутри двойных кавычек.
  3. Он увидел, что сразу после символа знака доллара была открывающая фигурная скобка.
  4. Он увидел, что внутри фигурных скобок находится переменная $ x.
  5. Он оценил переменную. Получилась строка «цена».
  6. Он добавил строку «цена» к внешнему знаку доллара и создал новую переменную $ price.
  7. Он оценил цену в долларах, которая оказалась целым числом 100000.
  8. Он выводил на экран всю строку.

Вы же не могли подумать, что эта статья будет настолько длинной на одних только строках, не так ли? Что ж, это еще не все.

Мы рассмотрели экранирование проблемных персонажей. Но есть символы, которые, когда перед ними стоит обратная косая черта, имеют некоторые новые функции. Подумайте о персонаже n. Сам по себе он не имеет особых полномочий. Но если вы добавите к нему обратную косую черту, \ n, он внезапно будет действовать как символ новой строки.

<?php
echo "First Line\nSecondLine";
?>

Результатом будет:

Первая строка
Вторая строка

PHP также интерпретирует символы HTML.

<?php
echo "<div>First Div</div><div>Second Div</div>";
?>

Когда вы посмотрите на вывод, вы заметите, что теги div скрыты за кулисами, и вы просто видите две строки, одну под другой.

Первый Дивизион

Второй дивизион

Я думаю, что наконец-то доволен разговором о строках в PHP. Увидимся в следующий раз.