Когда PHP-движок получает входные данные с веб-сервера, он считывает их сверху вниз, во время процесса, называемого синтаксическим анализом или парсингом. В процессе анализа анализатор PHP-движок ищет открывающие и закрывающие теги <?php и?> и определяет, что контент между этими тегами – код сценария, который он должен интерпретировать. Код за пределами тегов <?php и?> полностью игнорируется, что позволяет использовать в PHP-файлах контент разного типа и допускает встраивание PHP-кода в HTML-код следующим образом: внедряемый PHP-код всегда должен оборачиваться в открывающие и закрывающие теги <?php и?>. Код, заключенные в отличные от указанных теги, будет игнорироваться PHP-движком и отображаться в браузере. Соблюдение этого правила важно для корректного отображения страниц. Исключение из правил касается того случая, когда сценарий написан в отдельном PHP-файле, который содержит только PHP-код. В таком случае закрывающий тег?> желательно опустить.
Каждая инструкция в языке PHP должна завершаться символом точки с запятой.
Комментарии обозначаются так же, как и в языке С++.
Хранение значений
Переменная – это именованный контейнер в PHP-коде, в которой могут быть сохранены данные. К сохраненному значению можно обращаться, указывая имя переменной, а также изменять его в процессе выполнения сценария. Будучи разработчиком сценария, вы можете присвоить переменной любое имя, при условии соблюдения следующих трех соглашений:
1. Имена должны начинаться с символа доллара ($), например, $name.
2. В именах допускается использовать латинские буквы, цифры и символы подчеркивания, но не пробелы, например, $subtotal_1.
3. Сразу после символа $ должна указываться буква или подчеркивания, но не число.
|
* В языке PHP $this – это специальная переменная, поэтому вы не можете использовать слово this в качестве имени переменной.
Имена переменных в языке PHP чувствительны к регистру, а сами переменные «слабо типизированы». Это означает, что они могут содержать данные любого типа, в отличие от «сильно типизированных» переменных в других языках, где тип данных необходимо указывать при создании переменной:
$body_temp=36.6;
Значение, содержащееся в переменной, можно отобразить, обратившись к переменной по имени:
echo $body_temp;
echo “Температура тела составляет $body_temp градусов Цельсия ‘'.
Двойные кавычки инструктируют PHP-движок анализировать всю строку и заменить имена переменных на их сохраненные значения. Это не работает, если строка заключена в одиночные кавычки.
При работе со строковыми переменными возможно их объединение в составную строку, этот способ называется конкатенация.
$hi=’Привет’;
$bye=’Пока’;
$s_title=$hi. $bye; # ‘ПриветПока’
Пробелы и знаки препинания также могут быть добавлены при конкатенации строк:
$s_title=$hi. ‘, ’. $bye; # ‘Привет, Пока’
Массивы
Переменная массива может хранить несколько элементов данных в последовательном массиве “Элементов”, которые нумеруются с нуля. Создание массивов может быть с помощью двух способов:
1) $days[] = 'Понедельник'; $days[] = 'Вторник’;
$days[] = 'Среда’;
2) $days = array (‘Понедельник’,’Вторник’,’Среда’);
При создании массива с помощью функции array() нет необходимости указывать размерность массива в квадратных скобках.
Ассоциативные массивы. При создании массива для каждого элемента можно дополнительно указать имя ключа, который применяется для обращения к значению соответствующего элемента:
|
$months[‘янв’]=’Январь’;
$months[‘фев’]=’Февраль’;
$months[‘мар’]=’Март’;
Или так:
$months = array (‘янв’=>’Январь’, ‘фев’=>’Февраль’, ‘мар’=>’Март’);
В обоих случаях создается массив, к каждому из значений элементов которого можно обращаться, используя соответствующее имя ключа.
С помощью функции range() легко создавать массивы, содержащие последовательные числа или буквы:
$six = range (1, 6);
$a_z = range (‘a’_ ‘z’);
Перебор массивов. Все элементы массива могут перебираться с помощью циклов while, for, foreach. Наиболее интересный это foreach.
foreach ($months as $value)
{
echo $value. '<br>';
},
где $months – этот имя массива, а $value- переменная-счетчик, echo $value. '<br>'; - вывод на экран.
Циклом foreach можно пробегать не только по обычному массиву, но и по ассоциативному, тогда:
foreach ($months as $key=>$value)
{
echo $key. '<br>';
}
Прерывание цикла.
Ключевое слово break используется для досрочного прекращения работы цикла, когда выполнено заданное условие. Инструкция break располагается внутри блока инструкций цикла и предшествует проверяемому выражению.
Ключевое слово continue можно использовать, чтобы пропустить одну итерацию цикла, когда выполнено заданное условие.
Сортировка массивов.
Язык PHP предоставляет две удобные функции для преобразования переменных массивов и строк, поскольку они часто используются вместе.
Функция implode() преобразует массив в строку и добавляет определенный разделитель после каждого значения. Обычно она используется для создания списка значений, разделенных символами, например:
|
$a1 = array ('Иванов', 'Иван', '566-77-88');
$st_concatenation = implode (" ", $a1);
echo $st_concatenation;
Результат: Иванов Иван 566-77-88
Функция explode() преобразует строку в массив. При этом указывается разделитель, используемый для разбиения строки:
$allin = "Каждый охотник желает знать, где сидит фазан";
$a2 = explode (" ", $allin);
foreach ($a2 as $value)
{
echo "<br> $value ";
}
Результат:
Каждый
охотник
желает
знать,
где
сидит
фазан
Функция sort() осуществляет сортировку по значению с отбрасыванием исходного ключа.
Флаги сортировки:
SORT_REGULAR – обычное сравнение элементов без изменения типов (используется по умолчанию)
SORT_NUMERIC – числовое сравнение элементов
SORT_STRING – строковое сравнение элементов
SORT_LOCALE_STRING – сравнивает элементы как строки с учетом текущей локали. Используется локаль, которую можно изменить с помощью функции setlocale();
SORT_NATURAL – сравнение элементов как строк, используя естественное упорядочение
$fruits = array ('лимон', 'апельсин','банан','яблоко');
sort ($fruits);
foreach ($fruits as $value)
{
echo "$value ";
}
Результат: апельсин банан лимон яблоко
$numbers = array (18, 112, 46, -9, 0);
sort ($numbers);
foreach ($numbers as $value)
{
echo "$value ";
}
Результат: -9 0 18 46 112
Функция asort() выполняет сортировку по значению с сохранением исходного ключа.
Функция ksort() выполняет сортировку по ключу.
Примеры:
$cars= array ('УАЗ'=>'Патриот', 'ГАЗ'=>'Сайбер','ВАЗ'=>'Нива');
echo "<dl><dt>Исходный порядок элементов: <dd>";
foreach ($cars as $key => $value)
{
echo '• ', $key. ' '. $value;
}
asort($cars);
echo "<dl><dt>Сортировка с отбрасыванием исходного ключа: <dd>";
foreach ($cars as $key => $value)
{
echo '• ', $key. ' '. $value
}
asort($cars);
echo "<dl><dt>Сортировка по значению: <dd>";
foreach ($cars as $key => $value)
{
echo '• '. $key. ' '. $value;
}
ksort($cars);
echo "<dl><dt>Сортировка по ключу: <dd>";
foreach ($cars as $key => $value)
{
echo '• '. $key. ' '. $value;
}
Результат:
Исходный порядок элементов:
• УАЗ Патриот• ГАЗ Сайбер• ВАЗ Нива
Сортировка с отбрасыванием исходного ключа:
• ВАЗ Нива• УАЗ Патриот• ГАЗ Сайбер
Сортировка по значению:
• ВАЗ Нива• УАЗ Патриот• ГАЗ Сайбер
Сортировка по ключу:
• ВАЗ Нива• ГАЗ Сайбер• УАЗ Патриот
· Убедиться, является ли переменная массивом можно с помощью функции is_array(). Например, is_array($variable);
· Для подсчета количества элементов в массиве используется функция count(). Например, $num = count ($array);
Константы
Фиксированные значения данных, которые в сценарии никогда не изменяются, в PHP-коде нужно присваивать константам, а не переменным. Константа представляет собой именованный контейнер, хранящий числовые или строковые значения, к которым можно обратиться по имени константы.
В отличии от переменных, константа не может содержать логические значения TRUE или FALSE, представлять собой объект или содержать пустое значение NULL. Кроме того, константа не может быть изменена по мере выполнения сценария.
Константа обеспечивает неизменность значения. Имена констант подчиняются тем же правилам, что и переменные. Они создаются с помощью функции define(), позволяющей указать имя константы и значение, которое она будет содержать. Объявление константы: define (‘PI’, 3.14);
Имена констант не предваряются символом $, поэтому они не могут включены в состав строк для вывода – PHP-интерпретатор не способен отличить имя константы от обычной строки. Поэтому для включения значения константы в строку, необходимо использовать конкатенацию (объединение строк):
echo “Значение числа пи = ”. PI;
Результат: Значение числа пи = 3.14
Константы массивов, в которых все элементы содержат фиксированные значения, так же могут быть созданы с помощью функции define():
define (‘НЕДЕЛЯ’, [‘Пн’, ‘Вт’, ‘Ср’, ‘Чт’, ‘Пт’, ‘Сб’, ‘Вс’ ]);
Возможность создавать константы массивов с помощью функции define() впервые стала доступной в версии PHP 7.
Имена констант желательно указывать заглавными буквами с целью их быстрого нахождения в коде.