Php t


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

Начнём с функции, которую я использую при работе со строками в PHP регулярно — strlen(). Данная функция возвращает длину строки (количество символов в строке):

<?php
  $str = "This is my string";
  echo strlen($str);
?>

Думаю, что данная функция в комментариях не нуждается.

Также имеются две часто используемые строковые функции — это strtolower() и strtoupper(). Эти функции позволяют перевести строку в нижний и верхний регистр соответственно:

<?php
  $str = "This is my string";
  echo strtolower($str)."<br />";
  echo strtoupper($str);
?>


Очень полезная строковая функция — substr(), которая возвращает подстроку из исходной строки:

<?php
  $str = "This is my string";
  echo substr($str, 1)."<br />";
  echo substr($str, 4, 2)."<br />";
?>

Как видите, данная функция может содержать два, либо три параметра. Первый параметр — это исходная строка, второй параметр — это номер символа в исходной строке, который потом станет первым в полученной строке. Обратите внимание: нумерация символов начинается с 0 (то есть в нашем примере, 1-ый символ — «h«). Третий параметр означает длину строки, которую мы хотим получить. Если этот параметр не задан, то возвращается строка, начиная со второго параметра и до конца строки. В общем, смотрите на результат, и Вам всё станет ясно.

Ещё одна полезная строковая функция в PHP — это str_replace(). Как следует из названия, данная функция возвращает строку с заменой какой-то части:

<?php
  $str = "This is my string";
  echo str_replace("my", "your", $str);
?>

На выходе у нас получилась следующая строка: «This is your string«. То есть данная функция заменила строку, заданную первым параметром, на строку, заданную вторым параметром, в строке, заданной третьим параметром, и вернула результат.

И последняя функция, которую мы с Вами рассмотрим, — это strpos(). Данная функция ищет вхождение подстроки в строку и возвращает номер первого символа вхождения (напоминаю, что нумерация символов начинается с 0, а не с 1):

<?php
  $str = "This is my string";
  echo strpos($str, "is");
?>


Как видите, данная функция очень простая и очень важная, так как позволяет осуществлять поиск в строке. Также у функции strpos() есть ещё один необязательный параметр, задающий смещение. Напоминаю, что данная функция ищет первое вхождение. Например, в нашем примере «is» встречается в строке дважды, но вернула эта функция номер символа при первом вхождении. Поэтому для того, чтобы получить номера и других вхождений необходимо задавать третий параметр — смещение:

<?php
  $str = "This is my string";
  echo strpos($str, "is", 4);
?>

Таким образом, теперь мы получили номер символа в следующем вхождении. И, напоследок, хочется сказать, что если вхождение не будет найдено, то функция вернёт false. И вот на этом моменте у многих бывают ошибки. Давайте приведу простой пример:

<?php
  $str = "This is my string";
  if (strpos($str, "Th") == false) echo "Строка не найдена";
  else echo "Строка найдена";
?>


Очевидно, что «Th» содержится в исходной строке, и номер символа первого вхождения — это 0. Но если Вы запустите этот скрипт, то увидите, что «строка не найдена«. Почему? Если Вы читали статью об операторе эквивалентности, то без проблем ответите на этот вопрос. Однако, если нет, то поясняю. Дело в том, что так как у нас функция strpos() вернула 0, а 0 с точки зрения PHP — это false, то он без проблем сделал вывод о том, что условие истинно (ведь слева false и справа false). Как быть? Ответ прост: воспользоваться оператором эквивалентности (обозначается ===), который сравнивает не только значения (которые в нашем примере равны для PHP), но и их типы:

<?php
  $str = "This is my string";
  if (strpos($str, "Th") === false) echo "Строка не найдена";
  else echo "Строка найдена";
?>

И вот теперь Вы увидите, что «строка найдена«. Как видите, оператор эквивалентности может заявить о себе в любую минуту, и всегда нужно о нём помнить, иначе Вам не избежать труднодоступных ошибок.

Конечно, это далеко не весь набор строковых функций, которые нам предоставили разработчики PHP, но я, исходя из своей практики, привёл Вам список самых часто используемых строковых функций в PHP.

myrusakov.ru

Строки и числа


Самыми простыми типами данных в PHP являются строки и числа.

Числа обозначают сами себя, например 1, 12, 145, а вот строки требуется брать в кавычки (одинарные или двойные — без разницы):

Числа также могут быть дробями. Разделителем целой и дробной части служит знак «точка». К примеру, число 10.754 — это дробь.

Переменные

Одним из самых главных и распространенных объектов в программировании является переменная.

Переменная — это такой объект, который может хранить внутри себя различные данные, например, строки или числа.

Имя переменной должно состоять из английских букв: больших или маленьких, а также цифр и знака_подчеркивания.

В PHP перед переменной обязательно должен быть написан знак доллара $:

Операция присваивания

Очень важным элементом программирования является операция присваивания.

С помощью присваивания мы можем положить в переменную результат какой-либо операции, например, строку или число, а затем достать эти данные в нужном нам месте и воспользоваться ими.

Пример присваивания:

Комментарии

К коде PHP, так же, как и в HTML и CSS, можно оставлять комментарии, которые будут проигнорированы PHP при выполнении программы.

Их обычно используют для того, чтобы оставлять какие-либо пометки в коде или временно убрать какие-то строки кода, которые вам мешают, а потом иметь возможность быстро их вернуть обратно.

Комментарии могут быть многострочными и однострочными:

Функции


В программировании есть такое понятие, как функции. В отличии от переменных, которые хранят внутри себя некоторые данные, функции выполняют операции над этими данными.

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

Параметры — это данные (например, строки или числа), которые мы даем функции, она производит над ними какие-то операции и возвращает нам результат.

Например, в PHP есть стандартная функция sqrt(), которая параметром принимает число, а возвращает квадратный корень этого числа.

То есть, если ей передать число 9, вот так — sqrt(9), то на выходе получим число 3. Полученное число мы можем записать в какую-либо переменную или вывести на экран.

Давайте найдем корень из 25 и запишем в переменную $a:

Функция echo

В PHP существует специальная функция echo, которая позволяет вывести какой-либо текст в окно браузера. В отличие от других функций, после echo не требуются круглые скобки ().

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

А в следующим коде переменной $text присваивается фраза, а затем содержимое этой переменной выводится на экран:

Математические операции


В PHP между числами и переменными можно совершать различные математические операции: сложение (знак +), вычитание (знак -), умножение (знак *), деление (знак /).

Чтобы понять, как с ними работать, посмотрите на следующий пример:

Можно сначала записать числа в переменные, а потом уже проводить операции с переменными:

А можно также одновременно производить операции и с числами, и с переменными:

Специальные значения

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

Значения true, false

Значения true и false обозначают истину и ложь соответственно. Они используются для таких вещей, которые предполагают два варианта ответа — да или нет.

К примеру, на вопрос ‘вам уже есть 18 лет?’ в можете ответить да, то есть true, или нет, то есть false.

Эти значения называются логическими.

Значение null

Значение null обозначает ‘ничего’. К примеру, если мы попробуем обратиться к переменной, которой мы еще не задали значение — то ее значение и будет null.

Функция var_dump


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

Например, если переменная является пустой строкой », то выведя ее содержимое на экран с помощью echo, мы ничего не увидим.

Вторая ситуация — когда переменная содержит строку с пробелами по краям, например:

Для решения описанных выше проблем следует использовать функцию var_dump(), которая предназначена для отладки кода и позволяет выводить значения переменных и их тип.

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

Пример использования var_dump():

PHP внутри HTML

PHP код можно вставлять внутрь HTML кода:

Сложение строк в PHP

В PHP, в отличие от многих других языков, строки складываются с помощью знака «точка»:

Получение определенного символа строки

В PHP можно получить доступ к определенному символу строки по его номеру таким образом: $a[n] – n-ный символ строки (учтите, что нумерация идет с нуля):

Сложности с операцией присваивания


Очень часто новички не понимают, что присваивание отличается от обычного равенства. Посмотрите следующий пример:

С точки зрения математики запись $a = $a + 2 абсурдна, но не с точки зрения программирования.

В данном случае переменная $a имела значение 1, а затем мы переменной $a присвоили новое значение — старое значение переменной $a плюс 2.

Операции инкремента и декремента

Операция $a++ или ++$a – увеличивает переменную $a на единицу. Эта операция называется инкремент.

Операция $a— или —$a – уменьшает переменную $a на единицу. Эта операция называется декремент.

Примеры:

Давайте посмотрим, в каких случаях проявляется разница между ++a и a++.

Пусть у нас есть код echo ++a и код echo a++.

В первом случае переменная сначала увеличится на единицу, а потом выведется, а во втором случае — сначала выведется, а потом увеличится.

Операции +=, -=, *=, /=

Мы уже рассматривали код, который демонстрирует сложности с операцией присваивания:

В данном случае мы присваиваем переменной $a ее текущее значение, увеличенное на 2. Однако PHP позволяет записать этот код еще короче с помощью оператора +=:

Кроме того, существуют операторы -=, *=, /=, которые эквивалентны следующему коду:

Операция .=


Существует также операция .=:

Типизация переменных

Что будет, если попробовать сложить, к примеру, число и строку, вот так: 3+’3′? В результате вы получите число 6. Это значит, что PHP автоматически осуществляет преобразование типов при необходимости, вам не нужно за это переживать.

То же самое случится, если, к примеру, сделать так: 3+true или 3+false. Попробуйте эти примеры сами и узнайте к чему преобразуется true в этом случае, а чему — false.

code.mu

Главная Страница » Книги по PHP » Самоучитель PHP 5 для чайников с примерами » Обработка переменных внутри строк PHP

Одна из самых главных особенностей строк, определенных с помощью двойных кавычек, — это возможность обрабатывать переменные внутри них (листинг 9.4).

Листинг 9.4. Обработка переменных внутри строк.

‹html›
‹head›
‹title› Обработка переменных внутри строк ‹/title›
‹/head›
‹body›
‹?php
$str = "Иван";
// выведет: Привет, Иван!
echo "Привет, $str!";
?›
‹/body›
‹/html›

В данном случае вместо подстроки $str подставляется значение переменной $str. Происходит это по следующей схеме. Подстрока будет считаться переменной, если она образует правильное имя переменной (смотрите главу 4). Например, в строке Hello, $strs! переменной будет считаться $strs, а не $str как в предыдущем примере. Если все-таки требуется распознать именно переменную $str в этой строке, то надо применить фигурные скобки (листинг 9.5).

Листинг 9.5. Особенности обработки переменных внутри строк.

‹html›
‹head›
‹title› Особенности обработки переменных внутри строк ‹/title›
‹/head›
‹body›
‹?php
$str = 'Ivan';
// выведет: Hello, Ivans!
echo "Hello, {$str}s!";
?›
‹/body›
‹/html›

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

Листинг 9.6. Вывод знака доллара.

‹html›
‹head›
‹title› вывод знака доллара ‹/title›
‹/head›
‹body›
‹?php
$str = "Hello";
// выведет: Переменная имеет имя $str
echo 'Переменная имеет имя $str';
echo "‹br›";
// выедет: Переменная имеет имя $str
echo 'Переменная имеет имя $str';
?›
‹/body›
‹/html›

В обоих случаях переменная в строках не определяется.

www.php-s.ru

Создание и вывод строки

Мы разберем вывод строки на экран с помощью известной всем языковой конструкции echo. Программист может вывести строку сразу:

echo «Это Новая Строка»

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

$str = «Это Новая Строка»;

echo $str;

Если нужно вывести несколько строк в одной, то прибегают к их конкатенации:

echo «Это» . » Новая» . » Строка»;

или

$str1 = «Это»;

$str2 = «Новая»;

$str3 = «Строка»;

echo $str1 . $str2 . $str3;

В последнем случае на экран будет выведено ЭтоНоваяСтрока. Пробел можно добавить сразу при вызове echo:

echo $str1 . ‘ ‘ . $str2 . ‘ ‘ . $str3;

В этом случае на экран выведется: «Это Новая Строка». Конкатенация возможна не только при выводе, но и при создании строки:

$str1 = «Это»;

$str2 = «Новая»;

$str3 = «Строка»;

$string = $str1 . ‘ ‘ . $str2 . ‘ ‘ . $str3;

echo $string;

Echo выводит как латинские буквы, так и кириллические. Если одна из переменных содержала число, то при конкатенации это число будет преобразовано в соответствующую строку:

$i = 2;

$sum = $i + $i; //теперь $sum содержит число 4

echo $i . » + » . $i . » = » . $sum;

На экран будет выведено: «2 + 2 = 4».

сайт на php

Служебные символы

Допустим, строка определена с помощью двойных кавычек ($string = «Вот так»). Тогда можно совершенно спокойно использовать управляющие последовательности:

  • n совершает перевод строки;
  • r возвращает каретку;
  • » экранирует двойные кавычки:
    • echo «Строка с «двойными» кавычками»; //Строка с «двойными» кавычками
  • $ экранирует доллар;
  • \ экранирует обратную косую черту.

Последовательностей гораздо больше, все их найти можно в официальной документации PHP.

Как найти позицию первого вхождения подстроки

Допустим, у нас есть простая строка:

$string = «My name is Yemelyan and I am 27 year old»;

Также у нас есть две строки с именами:

$name = «Yemelyan»;

$anotherName = «Katherin»;

Нам необходимо узнать, содержит ли первая строка эти два имени. Для этого используется функция strpos($str, $search). Она возвращает позицию искомой подстроки $search, если эта строка содержится в исходной, $str. В противном случае функция возвращает булево значение false. Например, strpos($string, $anotherName) вернет false, а strpos($string, $name) — целое число. Код будет таким (напишем вариант, когда позиция выводится на экран):

$string = «My name is Yemelyan and I am 27 year old»;

$name = «Yemelyan»;

$anotherName = «Katherin»;

echo strpos($string, $anotherName); //выведет false

echo strpos($string, $name); //выведет позицию первого вхождения подстроки

Учтите, что нумерация строки начинается с нуля, то есть в нашем случае последняя строка выведет число 11 (пробелы также считаются).

Поиск позиции последнего вхождения подстроки и подводные камни

Если функция strpos() возвращает позицию первого вхождения, то обратная ей функция strrpos() ищет последнее вхождение подстроки.

Здесь есть некоторые подводные камни, связанные с началом нумерации. Это стоит учитывать: в PHP работа со строками может быть осложнена ограничениями в сравнениях. Так, лучше не использовать операцию сравнения с отрицанием: strpos($str, $search)!=false. В любой версии PHP примеры с подобной эквиваленцией могут работать неправильно, ведь нумерация строк начинается с нуля, а в логической интерпретации 0 и есть false. Это распространяется и на функцию strrpos().

Как найти число вхождений подстроки

Часто нужно найти не позицию первого или последнего вхождения подстроки в строку, а общее их число. Для этого используется функция substr_count(), которая обрабатывает по меньшей мере две переменные: substr_count($str, $search). Возвращает целое число. Если необходимо уменьшить область поиска по строке, то в функцию передаются еще две переменные: начало и конец строки соответственно. То есть функция в этом случае вызывается так: substr_count($str, $search, $start, $end). Функция будет искать подстроку $search на промежутке от $start до $end исходной строки $str. Если строка не будет найдена, то функция вернет ноль.

веб программирование

Как изменить регистр строки в PHP: примеры

Изменение регистра часто используется для сравнения строк и условных операторов. Допустим, пользователь должен ввести имя верховного бога в скандинавской мифологии. В программе есть вариант «Один», с которым и будет сравниваться ответ пользователя. Если введенный текст не будет совпадать с имеющимся (например, пользователь напишет «один» или «ОДИН»), то программа вернет значение false вместо true. Чтобы этого избежать, применяется функция изменения регистра. Это часто используется, если сайт на PHP имеет теги: вместо сотни вариантов слова «личное» («Личное», «личное», «ЛИЧНОЕ» и т. п.) есть только один тег в нижнем регистре.

Функция strtolower() изменяет регистр на нижний. Допустим, есть строка $catName = «Fluffy». Функция strtolower($catName) вернет строку «fluffy». Изменить регистр на верхний можно с помощью функции strtoupper().

Как найти длину строки в PHP: работа с функциями

Часто требуется найти длину строки. Например, в PHP работа со строками такого рода может понадобиться в создании цикла. Для поиска строки используется функция strlen(), которая возвращает число — количество символов. Нельзя забывать, что последний символ будет иметь номер strlen($str)-1, так как нумерация начинается с нуля.

php работа

Получение и замена подстроки в PHP: работа со строками

Получение подстроки осуществляется функцией substr(), которая может принимать два или три аргумента: substr($str, $start, $end). Допустим, у нас есть строка $string = «Fluffy cat», и мы хотим получить подстроку со второго по четвертый символ. Так как нумерация начинается с нуля, то переменная с этой подстрокой будет выглядеть так: $newString = substr($string, 1, 4). Если же мы введем $newString = substr($string, 1), то получим подстроку со второго символа по последний (то есть «luffy»). Этот код идентичен полному коду строки с использованием strlen(): substr($string, 1, strlen($string)).

Для замены подстроки используется функция str_replace(), которая принимает три переменные: str_replace($subStr, $newSub, $str). В отличие от многих функций, str_replace() корректно работает с кириллическими символами и не имеет аналога с префиксом. Пример:

$str = «Сегодня ужасная погода!»;

$newStr = str_replace(«ужасная», «чудесная», $str); //Сегодня чудесная погода!

Перевод строки в число

php примерыКаждому, кто изучает веб-программирование, рано или поздно приходится переводить строку в число. Для этого используются две похожие функции: intval() и floatval(), каждая из которых принимает одну переменную $string. Друг от друга они отличаются только типом возвращаемых данных: intval() возвращает целое число, а floatval() — число с плавающей точкой.

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

Перевод числа в строку

Часто требуется перевести числа в строку. Скажем, если необходимо взять половинку числа и возвести ее в квадрат (например, проверить, выполняется ли равенство: 88 х 88 + 33 х 33 = 8833). В этом случае используется функция strval(), которая возвращает строку с числом. После этого с новой строкой можно совершать все прочие действия: изменять, искать вхождение подстроки и другие функции. При необходимости строку можно вновь перевести в число уже описанным выше способом.

php функции работы со строкамиВ статье была рассмотрена лишь малая часть всех функций, связанных со строками. Часть неописанных функций работает с символами, но большая не была включена в материал из-за специфичности. Для ознакомления с этими функциями необходимо перейти к чтению официальной документации по PHP, которая отображает актуальную информацию.

fb.ru

Не удается войти в PHP / MySQL Проблема с кодировкой запроса php mysql Создайте рейтинг как получить дату для праздников, используя php php 5 strpos () разница между возвратом 0 и ложным? Как я могу сделать дополнительный запрос в laravel красноречивее? PHP-код для создания приличных кодов купонов (сочетание букв и цифр) PHPMailer «Не удалось получить доступ к файлу:» Выполнение статических методов и функций расшифровать зашифрованный текст as3crypto в PHP Ошибка при обработке аутентификации OAuth2 Функция PHP с открытым исходным кодом для преобразования координат UTM в широту и долготу? Форма поиска с одним или несколькими (несколькими) параметрами Нужна помощь в создании динамического меню Yii INSERT … ПО ОБНОВЛЕНИЮ DUPLICATE

ruphp.com

heredocs
1. heredocs текст ведет себя как строка с двойными кавычками без двойных кавычек.
2. Котировки в heredoc не должны быть экранированы, но escape-коды n linefeed,
r возврат каретки, t горизонтальная вкладка, v вертикальная вкладка, e escape,f form feed,backslash,$знак доллара, «двойная кавычка
все еще можно использовать. Переменные расширены, но такая же осторожность должна приниматься при выражении сложных переменных внутри heredoc, как со строками.

Пример:

$myname='Tikku'; $heredoc_exmaple= <<<HEREDOC \n ,\r ,t ,r ,\v ,\e ,f ,\ ,  ,$89 ,$ , $myname , ' , $myname , " ,' HEREDOC; echo $heredoc_exmaple;  //OUTPUT n ,r , , ,v ,e , , ,  ,$89 ,$ , Tikku , ' , $myname , " ,' 

nowdocs
1. nowdocs текст ведет себя как строка с одним кавычком без одинарных кавычек.
2. Котировки в nowdocs не обязательно должны быть экранированы. В этом случае переменные не расширяются. Преимущество nowdocs заключается в встраивании кода PHP и escape-кодов без необходимости экранирования.

Пример:

$myname='Tikku'; $nowdoc_exmaple= <<<'NOWDOC' \n ,\r ,t ,r ,\v ,\e ,f ,\ ,  ,$89 ,$ , $myname , ' , $myname , " ,' NOWDOC;  echo $nowdoc_exmaple;  //OUTPUT \n ,\r ,t ,r ,\v ,\e ,f ,\ ,  ,$89 ,$ , $myname , ' , $myname , " ,' 

Синтаксис: A теперь doc идентифицирован с тем же < последовательность, используемая для heredocs, но следующий идентификатор заключен в одинарные кавычки, например. & Л; < < ‘NOWDOC’. Все правила для идентификаторов heredoc также применяются к идентификаторам nowdoc, особенно к появлению закрывающего идентификатора.

qaru.site

Строка в двойных кавычках

Строка в двойных кавычках:

  $str = "Строка";    echo "Одну большую строку можно   разбить на несколько маленьких строк,   чтобы её было удобнее читать.";  

В строках с двойными кавычками можно использовать управляющие последовательности. Управляющая последовательность — это специальные символы предназначенные для форматирования текстового вывода. В PHP доступны следующие управляющие последовательности:

Последовательность Значение
n Перевод на новую строку (шестнадцатеричный код 0A).
t Горизонтальная табуляция (шестнадцатеричный код 09).
\ Обратная косая черта (обратный слэш).
$ Знак доллара.
" Двойная кавычка.
xXX Символ, заданный одной или двумя шестнадцатеричными цифрами.

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

  $num = 10;  echo "Число: $num <br> Знак доллара: $";  

Строки, заключённые в двойные кавычки, могут содержать символы одинарных кавычек:

  echo "Одинарная кавычка: '";  

Строка в одинарных кавычках (апострофах)

Строка в одинарных кавычках:

  $str = 'Строка';    echo 'Одну большую строку можно   разбить на несколько маленьких строк,   чтобы её было удобнее читать.';  

В отличие от строк в двойных кавычках и heredoc-синтаксиса, переменные и управляющие последовательности (за одним исключением), заключённые в одинарные кавычки, не обрабатываются. Это означает, что они будут интерпретированы как обычные символы строки:

  $num = 10;  echo 'Число: $num <br> Знак доллара: $';  

Чтобы в строке, заключённой в одинарные кавычки, можно было использовать одинарные кавычки, нужно их экранировать с помощью обратного слэша ('). Если необходимо написать саму обратную косую черту, нужно продублировать её (\):

  echo 'Внутри используются 'одинарные' кавычки';  echo 'Обратный слэш: \';  

Строки, заключённые в одинарные кавычки, могут содержать символы двойных кавычек:

  echo 'Двойная кавычка: "';  

Heredoc-синтаксис

Heredoc-синтаксис — это альтернативный способ записи строк.

Строка, определяемая с помощью Heredoc-синтаксиса, работает также, как и строка, расположенная в двойных кавычках. Разница между Heredoc и строкой в двойных кавычках заключается в том, что используя Heredoc нет необходимости экранировать двойные кавычки.

Heredoc-синтаксис начинается с трёх символов <<<, после которых должен быть указан произвольный идентификатор (назовём его открывающим). Идентификатор может быть указан как в двойных кавычках, так и без них. Сразу после идентификатора должен следовать перевод на новую строку, никаких других символов кроме перевода на новую строку после идентификатора не должно быть, иначе возникнет ошибка. Далее идёт непосредственно строковое содержимое. После строкового содержимого, на отдельной строке, должен быть указан закрывающий идентификатор (тот же, что и после <<<). Перед ним и после него не должно быть никаких пробелов или других символов, за исключением точки с запятой. Если это правило нарушено, то считается, что закрывающий идентификатор отсутствует и будет вызвана ошибка:

  <<<some_id  Hello   "World!"  some_id;    $num = 10;  echo <<<"other_id"  Число: $num  other_id;  

Nowdoc-синтаксис

Nowdoc-синтаксис также как и Heredoc является альтернативным способом записи строк.

Строка, определяемая с помощью Nowdoc-синтаксиса, работает также, как и строка, расположенная в одинарных кавычках. Разница между Nowdoc и строкой в одинарных кавычках заключается в том, что используя Nowdoc нет необходимости экранировать одинарные кавычки.

Синтаксис Nowdoc похож на Heredoc с той лишь разницей, что открывающий идентификатор обязательно должен быть заключён в одинарные кавычки:

  $num = 10;  echo <<<'some_id'  Число: $num  some_id;  

Обработка переменных в строках

Существует два типа синтаксиса обработки переменных в строках: простой и сложный.

Простой синтаксис — это когда имя переменной указывается в строке как есть.

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

  $str = "World!";  echo "Hello $str";  

Сложный синтаксис — это когда имя переменной заключается в фигурные скобки.

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

  $sport1 = 'волей';  $sport2 = 'фут';    echo "Мне нравится $sport1бол и $sport2бол";  

В данном случае не будет достигнут желаемый результат, поскольку интерпретатор будет считать $sport1 как часть имени переменной $sport1бол, которой не существует.

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

  $sport1 = 'волей';  $sport2 = 'фут';    echo "Мне нравится {$sport1}бол и {$sport2}бол.";  

Знак доллара может быть расположен как перед фигурной скобкой, так и после неё:

  $sport1 = 'волей';  $sport2 = 'фут';    echo "Мне нравится ${sport1}бол и {$sport2}бол.";  

Конкатенация

Конкатенация — это объединение двух или более строк в одну большую. Объединение происходит с помощью оператора конкатенации — . (точка). При конкатенации каждая последующая строка добавляется в конец предыдущей:

  <?php  echo 'Из двух строк ' . 'делаем одну большую';  ?>  

Значение любого типа, которое объединяется со строкой, будет неявно преобразовано в строку и далее будет произведена конкатенация:

  <?php  $str = "Число: ";  $num = 12;    echo $str . $num . '<br>';  echo 'Число: ' . 1;  ?>  

puzzleweb.ru


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.