SlideShare uma empresa Scribd logo
1 de 69
Baixar para ler offline
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РЕСПУБЛИКИ КАЗАХСТАН
ГККП «Алматинский государственный политехнический
колледж»
Управления образования города Алматы
Основы программирования на PHP
(практические примеры)
Алматы 2016
2
Рецензент:
Бердибаева С. Д. – преподаватель спецдисциплин высшей
категории.
Основы программирования на PHP (практические примеры) –
Алматы, 2016 – 69с.
Данный сборник содержит практические примеры решения
разнообразных задач при программировании на PHP. В данном
сборнике рассматриваются следующие вопросы: синтаксис языка,
строки и управляющие структуры, массивы и регулярные
выражения, функции; описываются приемы отладки ваших
сценариев. Каждая задача снабжена проработанным решением,
содержащим небольшой фрагмент кода, который можно вставлять
прямо в приложение. Этот сборник является вспомогательным
материалом в изучении WEB-программирования и предназначен
для преподавателей и студентов колледжа.
3
Содержание
Введение 6
Практическая работа №1 Введение в php 8
Практическая работа №2 Особенности php 9
Практическая работа №3 Комментарии в php 9
Практическая работа №4 Вывод данных в php 10
Практическая работа №5 Переменные 11
Практическая работа №6 Типы данных 12
Практическая работа №7 Heredoc-синтаксис 15
Практическая работа №8 Экранирование переменных 16
Практическая работа №9 Доступ к символу в строке 17
Практическая работа №10 Арифметические операторы 18
Практическая работа №11 Оператор присваивания 19
Практическая работа №12 Логические операторы 20
Практическая работа №13 Операторы сравнения 21
Практическая работа №14 Конструкции if, else и elseif 21
Практическая работа №15 Конструкция switch-case 25
Практическая работа №16 Операторы инкремента и
декремента
26
Практическая работа №17 Цикл while 27
Практическая работа №18 Цикл do-while 29
Практическая работа №19 Цикл for 30
Практическая работа №20 Тип данных массивы 32
Практическая работа №21 Смотрим структуру массива 35
Практическая работа №22 Цикл foreach 36
Практическая работа №23 Основы про функции 38
Практическая работа №24 Область видимости переменной 41
Практическая работа №25 Возврат значения функции с
помощью return
44
Практическая работа №26 Функция is_array для работы с
переменными
46
Практическая работа №27 Функция is_bool для работы с
переменными
46
Практическая работа №28 Функция is_integer для работы с
переменными
47
Практическая работа №29 Функция is_float для работы с 48
4
переменными
Практическая работа №30 Функция is_null для работы с
переменными
48
Практическая работа №31 Функция is_string для работы с
переменными
49
Практическая работа №32 Функция is_scalar для работы с
переменными
49
Практическая работа №33 Функция is_numeric для работы с
переменными
50
Практическая работа №34 Функция gettype для работы с
переменными
51
Практическая работа №35 Функция settype для работы с
переменными
51
Практическая работа №36 Функция unset для работы с
переменными
52
Практическая работа №37 Функция var_dump 53
Практическая работа №38 Функция var_export, аналогична
уже рассмотренной функции var_dump
54
Практическая работа №39 Математическая функция abs -
модуль числа
54
Практическая работа №40 Математические функции rad2deg
и deg2rad конвертирования градусов в радианы и наоборот
55
Практическая работа №41 Математические функции
косинуса и синуса (cos и sin)
55
Практическая работа №42 Все остальные математические
функции
55
Практическая работа №43 Функция explode - разбиваем
строку с помощью разделителя
57
Практическая работа №44 Функция implode - объединяем
элементы массива в строку
59
Практическая работа №45 Функция htmlspecialchars -
преобразуем специальные символы в HTML-сущности
59
Практическая работа №46 Функция htmlentities -
Преобразуем все возможные символы в соответствующие
HTML-сущности
61
Практическая работа №47 Функция html_entity_decode -
преобразуем все HTML-сущности в соответствующие
символы.
63
5
Практическая работа №48 Функция ltrim - удаляем пробелы
из начала строки
64
Практическая работа №49 Функция rtrim - удаляем пробелы
из конца строки
65
Практическая работа №50 Функция trim - удаляем пробелы
из начала и конца строки
66
Практическая работа №51 Функция addslashes - экранирует
спецсимволы в строке
67
Практическая работа №52 Функция strip_tags - удаляет
HTML и PHP тэги
68
Перечень использованной литературы 69
6
Введение
Язык PHP был создан Расмусом Лердорфом (Rasmus Lerdorf)
осенью 1994 года исключительно в личных целях – Расмус хотел
вести статистику посещаемости своего сайта (аббревиатура PHP
расшифровывалась как Personal Home Page). Средствами HTML это
было реализовать невозможно, а другие инструменты для решения
этой задачи по каким-то причинам Расмуса не удовлетворяли,
поэтому он создал свое простое и удобное средство. Он и не думал
о том, что его идея может оказаться интересной еще кому-либо. Но
люди, которые использовали для хостинга своих сайтов тот же
сервер, что и Расмус, заинтересовались этой простой и удобной
оболочкой. Автор пошел им навстречу, так в 1995 году появилась
первая общедоступная версия PHP.
На тот момент PHP обладал весьма скромными
возможностями, но уже к середине 1995 года он научился
принимать данные HTML-форм и работать с базами данных. С тех
пор PHP все время совершенствовался, и на сегодняшний день
представляет собой удобный инструмент для создания
динамических HTML-страниц. Изменилось и значение
аббревиатуры: теперь PHP рекурсивно расшифровывается как PHP:
Hypertext Preprocessor (PHP – гипертекстовый препроцессор).
Что нужно, чтобы начать?
Для полноценной работы с PHP на Вашем компьютере нужны
следующие вещи:
1. Веб-сервер Apache (он используется в большинстве
случаев);
2. Система Управления Базами Данных (СУБД) MySQL (в
базе данных хранится наполнение сайта);
3. Установленный интерпретатор PHP;
4. Текстовый редактор, в котором Вы будете писать код;
5. Браузер.
Подробнее о первых трех пунктах.
1. Веб-сервер предназначен для имитации на Вашем
компьютере того самого сервера, на котором потом будет
размещаться Ваш сайт уже на хостинге в Интернет. Это нужно для
того, чтобы у себя на компьютере Вы могли писать любые PHP-
скрипты и смотреть, как они работают, вносить в них изменения и
7
правки. Одним словом, это необходимо для так называемой
отладки.
2. СУБД MySQL нужна для хранения информации, которая
будет на Вашем сайте. В случае с HTML-страницами все
содержимое сайта находится непосредственно в них. Каждая
страница содержит определенный объем информации (контента).
При использовании PHP для целей хранения полезного
информационного наполнения сайта используется, как правило,
база данных. В подавляющем большинстве случаев это MySQL.
3. Интерпретатор PHP - это своеобразная программа, которая
осуществляет обработку PHP-кода на веб-сервере. Без него мы
никак не сможем выполнить наши PHP-скрипты и увидеть
результат их работы.
8
Практическая работа №1 Введение в php
Для начала обучения нам необходимо установить локальный
сервер. Создаете папку php в Z:homelocalhostwww
(Буква Z означает имя диска. Может отличаться. )
1. В папке php создайте файл echo.php . Где “echo” название, а
php расширение.
Если у Вас операционная система XP, перезагрузите сервер. Нажав
на ярлык рестарт. В папке php будут располагаться все уроки. Php-
код начинается с спец. символов <?php ?> или <? ?>. Эти
символы говорят серверу, что всё что внутри данного блока это
php. Выглядит это так:
1.
2.<?php
3.Какой-то код
4.?>
Также приемлема запись:
1.
2.<?
3.Какой-то код
4.?>
Php блок может быть не закрытым. Например:
1.
2.<?php
3.Какой-то код
Где это используется мы будем рассматривать в следующих
уроках. Рекомендуемая запись:
1.
2.<?php
3.Какой-то код
4.?>
У php, как у любого языка есть параметры, которые можно
изменять. Все параметры находятся в файле php.ini. Сам же файл
вы найдете по пути Z:usrlocalphp5 (Буква Zозначает имя диска.
Может отличаться.) Настройки php можно получить в удобной
таблицы. Для этого создадим в папке php файл info.php и напишем
наш первый код:
1.
2.<?php
3.phpinfo();
4.?>
9
Практическая работа №2 Особенности php
PHP это язык C,С++ подобный. Отличительные
особенности: каждая инструкция (выражение) заканчивается
точкой с запятой.
Выражение;
Допускается одно “выражение” записывать в несколько строк. PHP
будет выполнять код, пока не найдет точку с запятой.
1.
2.<?php
3.Код
4.Код
5.Код;
6.?>
В одной строке можно располагать несколько выражений:
1.<php
2.Выражение1; Выражение2;
3.?>
Практическая работа №3 Комментарии в php
Комментарии один из важных моментов в разработки вообще.
Классическая схема это 30% комментариев от основного года. Нет
ничего ужаснее чем читать чужой код, где нет не одного
комментария.
Комментарии в php делятся на:
1. Однострочные
2. Многострочные
Однострочный комментарий обозначаются # или // . Привычнее
видеть запись c таким комментарием - //
1.<?php
2.// Однострочный комментарий
3.phpinfo();
4.?>
Многострочные обозначаются - /* */ . Применяться для
комментирования большого куска кода.
1.<?php
2./*
3.Многострочный комментарий
4.Много строк
5.Много!
6.*/
7.phpinfo();
10
8.?>
Практическая работа №4 Вывод данных в php
Вывод данных осуществляется по принципу PHP -> Сервер -
>Браузер. Существует две главных функции print и echo. Нельзя
сказать, что это функции, так как функции это немного другое. Это
конструкции языка. Но сделаем такое пренебрежение в разговоре.
1.<?php
2.print ("Вывод текста через print");
3.echo "Вывод текста через echo";
4.?>
В первом уроке мы создали файл echo.php . Откройте его и
напишите следующий код:
1.<h1>
2.<?php
3.echo "Заголовок";
4.?>
5.</h1>
Выдастся белый экран с надписью “Заголовок”. Отсюда моно
сделать вывод, что php код можно вставлять в html теги страницы.
Данный код можно записать по-другому:
1.<?php
2.echo "<h1>Заголовок</h1>";
3.?>
Первый и второй вариант одинаковые для вывода данных.
Можно укоротить запись таким образом:
1.<h1>
2.<?=" Заголовок ";?>
3.</h1>
Это будет абсолютно тоже самое. Рассмотрим внимательнее спец.
cимволы php echo можно заменить на =
1.<h1>
2.<?php echo "Текст"?>
3.</h1>
4.//Тоже самое!
5.<h1>
6.<?="Текст"?>
7.</h1>
11
Практическая работа №5 Переменные
В РНР переменные начинаются со знака доллара ($). За этим
знаком может следовать любое количество буквенно-цифровых
символов и символов подчеркивания, но первый символ не может
быть цифрой.
Переменным присваиваются, какие либо
значения. Присваиваются значком =
1.<?php
2.$name = 'Владимир';
3.?>
Следует также помнить, что имена переменных в РНР
чувствительны к регистру!!! Пример:
1.<?php
2.$last_name = 'Первое';
3.$last_Name = 'Второе';
4.//Выведем переменные на экран через echo
5.echo $last_name.'<br>'; // выведет - Первое
6.echo $last_Name; // выведет – Второе
7.// $last_name и $last_Name разные переменные!!!!
8.?>
Переменные взаимозатераемые. Например, если в переменной
лежало одно значение, при повторном присваивание значение
изменится, начиная со строки присваивания!!! Пример:
1.<?php
2.$name = 'Ивану';
3.echo $name; // выведет - Иван
4.$name = 'Влад';
5.echo $name; // выведет - Влад
6.?>
Переменные можно удалять. Удаление происходит с помощью
функции unset. Пример:
1.<?php
2.$name = 'Ивану';
3.unset($name); //Удалили переменную
4.echo $name; // Ничего не выдаст
5.?>
12
Переменные можно стыковать. Стыковка происходит с помощью
точки. Пример:
Выведем на экран – Ивану-25 лет. Возьмем в переменные “Иван” и
“25”
1.<?php
2.$name = 'Ивану';
3.$age = '25';
4.echo $name.'-'.$age.' лет'; // Ивану-25 лет
5.?>
Можно записать по-другому переменную $age Пример: $age = 25;
Выдаст тоже самое, но только мы положили в переменную не
слово, а число!!!
Практическая работа №6 Типы данных
PHP предоставляет определенную гибкость в отношении
типов переменных, то есть с одной и той же переменной на
протяжении программы можно работать и как со строкой, и как с
числом. Однако, несмотря на это в РНР существуют набор
основных типов данных, которые могут явно указываться при
работе с переменными:
Четыре скалярных типа:
1. integer; (Целые числа)
2. string; (Строки)
3. boolean; (Двоичные данные (Истина или Ложно))
4. float; (Число с плавающей точкой)
Два смешанных типа:
1. array; (Массивы)
2. object; (Объекты)
Два специальных типа:
1. NULL; (Пустой тип)
2. Resource; (Ресурсы)
Есть функция gettype(), возвращающая тип, который РНР назначил
переменной:
1.<?php
2.$var1= '5';
3.$var2 = 5;
4.echo gettype($var1) // string
5.. '<br>'
6.. gettype($var2); // integer
7.?>
13
В первом случае РНР вернет string, во втором integer.
Напоминаю из предыдущей работы, что операция «.» (точка)
используется для склеивания (конкатенации) строк.
Существует также функция settype(), которая явно устанавливает
тип:
1.<?php
2.$var = '5'; // Тип string
3.settype($var, 'integer');
4.echo '<br>'
5.. gettype($var); // Перевели в тип integer
6.?>
Кроме функции settype() преобразование типов в РНР можно
осуществлять при помощи операторов преобразования типов.
Преобразование типов осуществляется путем указания перед
переменной ее нового типа, взятого в скобки:
1.<?php
2.$var = (int)$var;
3.?>
4.
Соответственно, выполнение следующего кода приведет к тому,
что РНР вернет integer:
1.<?php
2.$var = '5'; // тип string
3.$var = (int)$var; // преобразуем в int
4.echo gettype($var);
5.?>
Тип: boolean
Простейший тип. Выражает истинность значения – это может быть
либо TRUE, либо FALSE .
1.<?php
2.$foo = True; // присвоить переменной $foo значение
истина
3.?>
TRUE и FALSE – регистро-независимы!!! В отличие от
переменных!!! Посмотрите и потренируйтесь переводить один тип
данных в другой. Например если переменная равна true, то в типы
integer она будет 1. Если false, то 0.
Тип: integer ии float
Я думаю Вам все понятно сразу, число оно и в Африке число.
01.<?php
02.$int = 1234; // Десятичное число
03.$int = -123; // Отрицательное число
14
04.$int = 0123; // 8-ное число
05.$int = 0x1A; // 16-ное число
06.// Числа с плавающей точкой
07.$flt = 1.234;
08.$flt = 1.2e3;
09.$flt = 7E-10;
10.?>
Тип: string
В основном мы гоняем в php строки. Поэтому строки это основной
можно сказать тип. Строки можно в одинарные кавычки помешать:
1.<?php
2.$user = 'Владимир';
3.echo 'Я '.$user.' ушел курить';
4.?>
А можно и в двойные:
1.<?php
2.$user = "Владимир";
3.echo "Я ".$user." ушел курить";
4.?>
И разница в этом есть!!! Давайте разбираться в чем.
1)В двойные кавычки можно помещать переменные и они будут
работать, а в одинарные нет! Перепишем выше пример и уберем
кавычки и стыковки у переменной.
1.<?php
2.$user = "Владимир";
3.echo "Я $user ушел курить";
4.?>
В одинарных кавычках такой код работать не будет!!! Можете
попробовать.
2)Внутри двойных кавычек можно использовать специальные
символы. И вот несколько из них:
n – новая строка
r – возврат каретки
t – горизонтальная табуляция
 – обратная косая черта
$ – знак доллара
" – двойная кавычка
Пример использования:
1.<?php
2.$user = "Владимир";
3.echo "Я $user n ушел курить";
4.?>
15
Но в браузере вы изменений не увидите, а вот в исходном коде
страницы перенос будет!!! Показываться будет, например, если Вы
хотите в двойных кавычках еще двойные кавычки. Пример:
1.<?php
2.$user = "Владимир";
3.echo "Я "$user" ушел курить";
4.?>
Практическая работа №7 Heredoc-синтаксис
Еще один из важных способ использования строк это heredoc-
синтаксис – используется с помощью синтаксиса документов
("<<<"). После <<< укажите метку(идентификатор), затем строку, а
затем ту же самую метку, чтобы закрыть "кавычки".
Пример:
1.<?php
2.echo <<<METKA - без пробелов в конце, и только англ.
символы.
3.код
4.METKA; - без пробелов
5.// Работать не будет!
6.?>
Закрывающая метка должна начинаться в первом столбце
строки. Кроме того, метка должна удовлетворять правилам
именования, как и любая метка в PHP: он должен содержать только
алфавитно-цифровые символы и подчеркивания и не должен
начинаться с цифры или подчеркивания.
Такой текст ведет себя как строка в двойных кавычках, но без
двойных кавычек. Это означает, что Вам не придется кодировать
кавычки с помощью слеша, но использовать коды со слешем все
равно можно. Переменные раскрываются, но следует проявлять
осторожность при выражении сложных переменных в таких
строках.
Наизусть выучить:
1. Строка с открывающим идентификатором (меткой) не
содержит после никаких других символов, включая пробел!!!
Следите, чтобы не было пробелов. А то ничего работать не
будет.
2. Закрывающий идентификатор (метка) должен начинаться с
первой позиции строки.
16
3. Строка с закрывающим идентификатором (меткой) не
содержит других символов (включая пробелы), за
исключением точки с запятой.
Пример нормального использования:
1.<?php
2.$user = "Вова";
3.echo <<<AAA
4.<p>$user пошел в "Виват" за пивом.</p>
5.AAA;
6.?>
Можно присваивать переменным. Пример:
1.<?php
2.$user = "Вова";
3.$text= <<<AAA
4.<p>$user пошел в "Виват" за пивом.</p>
5.AAA;
6.echo $text;
7.?>
Практическая работа №8 Экранирование переменных
Работа о “Экранирование переменных”. Например у нас есть
переменная:
1.<?php
2.$beer = 'Heineken';
3.?>
И нам надо в двойных кавычках вывести на экран:
Heinekens taste is great
Заметьте что у название пива стоит “s” в конце. Как быть? Как
вывести? А вывести очень просто. Надо использовать спец
символы { }. Пример:
1.<?php
2.$beer = 'Heineken';
3.echo "${beer}s taste is great";
4.?>
Можно записать по-другому.
1.<?php
2.$beer = 'Heineken';
3.echo "{$beer}s taste is great";
4.?>
17
Практическая работа №9 Доступ к символу в строке
Разберем как получать символы. Например, нам надо в слове
“Привет” взять первый символ. Делается это следующим образом.
Пишется имя переменой, а в фигурных скобках указываться
позиция нужного символа. Позиции начинаются с нуля.
П – 0
Р – 1
И – 2
В – 3
Е – 4
Т – 5
В коде будет выглядеть так:
1.<?php
2.$str = 'Привет';
3.// Получение первого символа
4.$first = $str{0};
5.// Вывод первого символа
6.echo $first; // П
7.?>
А вот для получение последнего символа, нам понадобиться
функция strlen. Данная функция считает длину строки.
1.<?php
2.$str = 'Привет';
3.// Cчитаем длину строки
4.$len = strlen($str);
5.// Выводим значение
6.echo $len; // 6
7.?>
Длина слова “Привет” составляет 6 слов. А позиции у нас
начинаются с нуля, поэтому нам надо вычесть 1 для получение
последнего символа.
Пример кода:
01.<?php
02.$str = 'Привет';
03.// Cчитаем длину строки
04.$len = strlen($str);
05.$pos = $len - 1; // 6-1=5
06.// Получение последнего символа строки
07.$last = $str{$pos};
08.echo $last;
09.?>
Привыкайте укорачивать записи. Иначе читаю чужой код, Вы
нечего не поймете. Пример нормальной записи:
18
1.<?php
2.$str = 'Привет';
3.// Получение последнего символа строки
4.$last = $str{strlen($str)-1};
5.echo $last;
6.?>
Практическая работа №10 Арифметические операторы
Вспоминайте школьные основы арифметики. Описанные
ниже операторы PHP работают таким же образом!!!
1.<?php
2.$a = 20;
3.$b = 10;
4.$c = 2;
5.$res = $a+$b+$c; // 20+10+2
6.echo $res; // 32
7.?>
Операция деления ("/") всегда возвращает вещественный тип, даже
если оба значения были целочисленными (или строками, которые
преобразуются в целые числа). В противном случае результат будет
дробным.
1.<?php
2.$a = 20;
3.$b = 10;
4.$c = 2;
5.$res = $a+$b/$c;
6.echo $res; // 25
7.?>
Возможно использование скобок. Приоритет одних
математических операций над другими и изменение приоритетов
при использовании скобок в арифметических выражениях
соответствуют обычным математическим правилам.
1.<?php
2.$a = 20;
3.$b = 10;
4.$c = 2;
5.$res = ($a+$b)/$c; // (20+10) / 2
6.echo $res; // 15
7.?>
19
Практическая работа №11 Оператор присваивания
Базовый оператор присвоения обозначается как “=” это вы
помните из предыдущих уроков. Примеры возможного
присваивания:
1.<?php
2.$a = ($b = 3) + 1; // переменной $b присвоено 3, a
переменной $a присвоено 4
3.echo $b; // 3
4.// Перенос строки
5.echo '</br>';
6.echo $a; // 4
7.?>
В дополнение к базовому оператору присвоения имеются
"комбинированные операторы" для всех бинарных арифметических
и строковых операций, которые позволяют использовать некоторое
значение в выражении, а затем установить его как результат
данного выражения. Например:
1.<?php
2.$a = 3;
3.$a = $a + 5; // 3+5=8
4.echo $a; // 8
5.?>
Укорачиваем запись:
1.<?php
2.$a = 3;
3.$a += 5; // 3+5=8
4.echo $a; // 8
5.?>
Пример по строкам. Есть такая запись:
1.<?php
2.$a = 'Мне ';
3.$b = $a.'25 лет';
4.echo $b;
5.?>
Можно записать так:
1.<?php
2.$a = 'Мне ';
3.$a .='25 лет';
4.echo $a;
5.?>
Присваивание по ссылке. Очень часто используется в Joomla да и в
других CMS. Пример:
1.<?php
20
2.$a = 5;
3.$b = &$a; // $b - это ссылка на $a
4.echo $b;
5.?>
Вроде бы это тоже самое что $a=$b; Но нет. Смотрим пример:
1.<?php
2.$a = 5;
3.$b = $a +5 ;
4.echo $b; // 10
5.?>
Получаем 10.
1.<?php
2.$a = 5;
3.$b = &$a +5; // $b - это ссылка на $a
4.echo $b; // 5!!!!
5.?>
Практическая работа №12 Логические операторы
Логические операторы предназначены исключительно для
работы с логическими выражениями и возвращают false или true.
(Истина или Ложь). Оператор не чувствителен к регистру. Можно
писать как заглавные так и строчные символы.
Для удобство всё выведено в таблицу, Вам остается выучить или
держать всегда под рукой.
Как видно из таблицы имееться дубль операторов :
аnd - &&
or - ||
Смысл двух разных вариантов для операторов "and" и "or" в том,
что они работают с различными приоритетами.
"||" имеет больший приоритет, чем "or"
"&&" имеет больший приоритет, чем "and"
21
Практическая работа №13 Операторы сравнения
Операторы сравнения позволяют сравнивать два значения
между собой и, если условие выполнено, возвращают true, а если
нет — false. ( Истина или ложь)
Практическая работа №14 Конструкции if, else и elseif
Конструкции if, else, elseif относятся к условным оператором.
Условные операторы, пожалуй, наиболее распространенные
конструкции во всех языках программирования.
Конструкция if.
1.<?php
2.if (условие){
3.Инструкция 1;
4.Инструкция 2;
5.}
6.?>
Условие может быть любое. Если условие принимает значение
TRUE (Истину), PHP выполнит инструкцию, а если оно принимает
значение FALSE (Ложь) - проигнорирует.
Пример:
1.<?php
2.$a = 10;
3.$b = 5;
4.if ($a > $b){
5.echo 'Переменная А больше Б';
6.}
7.?>
Усложним код:
22
01.<?php
02.$a = 10;
03.$b = 5;
04.$c = 2;
05.if ($a > $b and $c < $a) {
06.echo 'Истина';
07.$d = $a + $b; // 10+5=15
08.echo '</br>'.$d; // 15
09.}
10.?>
Еще раз усложним:
01.<?php
02.$a = 10;
03.$b = 5;
04.$c = 2;
05.if ($a + $b > $c and $c < $a) {
06.echo 'Истина';
07.$d = $a + $b; // 10+5=15
08.echo '</br>'.$d; // 15
09.}
10.?>
Как видно из примера, в условие можно помешать всё что угодно.
Лишь бы это было условие.
Конструкция else
1.<?php
2.if (условие){
3.Инструкция 1;
4.} else {
5.Инструкция 2;
6.}
7.?>
Сразу перейдем к примерам:
01.<?php
02.$a = 10;
03.$b = 5;
04.if ($a == $b) {
05.echo 'Истина';
06.} else {
07.echo 'Ложь';
08.}
09.?>
Конструкция elseif - это комбинация конструкций if и else. Эта
конструкция расширяет условную конструкцию if-else.
Практический пример использования конструкции elseif:
23
01.<?php
02.$a = 10;
03.$b = 10;
04.if ($a > $b) {
05.echo "a больше, чем b";
06.} elseif ($a == $b) {
07.echo "a равен b";
08.} else {
09.echo "a меньше, чем b";
10.}
11.?>
Очень часто встречается альтернативный синтаксис. В Joomla
почти везде.
1.<?php
2.$a = 10;
3.if ($a == 10): ?>
4.<h1> A равно 10 </h1>
5.<?php endif; ?>
Альтернативный синтаксис также применяется и к else и elseif.
01.<?php
02.$a = 5;
03.if ($a == 5):
04.echo "a равно 5";
05.echo "...";
06.elseif ($a == 6):
07.echo "a равно 6";
08.echo "!!!";
09.else:
10.echo "a не равно ни 5 ни 6";
11.endif;
12.?>
Существует сверх укороченная запись, давайте рассмотрим
синтаксис укороченного использования:
1.
2.Условие ? Инструкция 1 : Инструкция 2;
3.
Пример кода, который будем укорачивать:
01.<?php
02.$my = true;
03.if ($my) {
04.echo 'Переменная истина';
05.} else {
06.echo 'Ложь';
07.}
24
08.
09.?>
Пример укороченного кода:
1.<?php
2.$my = true;
3.echo $my ? 'Переменная истина' : 'Ложь';
4.?>
Практическая работа №15 Конструкция switch-case
Часто вместо нескольких расположенных подряд инструкций
if-else целесообразно воспользоваться специальной конструкцией
выбора switch-case. Раcсмотрим пример на elseif.
01.<?php
02.$d = 2;
03.if ($d == 1)
04.print(" 1 ");
05.elseif ($d == 2)
06.print(" 2 ");
07.elseif ($d == 3)
08.print(" 3 ");
09.elseif ($d == 4)
10.print(" 4 ");
11.?>
Данный пример выведет значение при совпадение условия, но
перебор всех сравнений будет идти пока не закончиться
конструкция. Логичнее было бы закончить выполнение кода, сразу
как условие выполниться. Конструкция switch-case как раз такой
логикой и обладает.
Рассмотрим синтаксис конструкции switch-case:
01.<?php
02.switch (Переменная/Выражение){
03.case Значение 1:
04.Операторы 1;
05.[break;]
06.case Значение 2:
07.Операторы 2;
08.[break;]
09.[default: Оператор]
10.}
11.?>
Наш пример будет в конструкции switch-case выглядеть
следующем образом:
25
01.<?php
02.$d = 2;
03.switch ($d) {
04.case 1:
05.print(" 1 ");
06.break;
07.case 2:
08.print(" 2 ");
09.break;
10.case 3:
11.print(" 3 ");
12.break;
13.case 4:
14.print(" 4 ");
15.break;
16.}
17.?>
break; - означает выйти из конструкции. То есть если переменная
совпала, то сразу закончить выполнение конструкции.
Очень интересно ведет себя конструкция, если убрать break;
01.<?php
02.$d = 2;
03.switch ($d) {
04.case 1:
05.print(" 1 ");
06.case 2:
07.print(" 2 ");
08.case 3:
09.print(" 3 ");
10.case 4:
11.print(" 4 ");
12.}
13.?>
Конструкция начинает работать по принципу:
Увидел совпадение в case, и выполняю всё что есть, не смотря
наследующие case!!! В итоге выдаст на экран - 2 3 4
Если Вы посмотрите еще раз вверх на пример синтаксиса
конструкции. То увидите - default: Оператор. Данные строчки
выполняются при условии, что не одно выражение не совпало
с case.
Пример:
01.<?php
02.$d = 100;
03.switch ($d) {
26
04.case 1:
05.print(" 1 ");
06.break;
07.case 2:
08.print(" 2 ");
09.break;
10.case 3:
11.print(" 3 ");
12.break;
13.case 4:
14.print(" 4 ");
15.break;
16.default: print(" Переменная не совпала с case. Вывелось
значение по умолчанию. ");
17.}
18.?>
Так же как у конструкции “if и elseif” есть альтернативный
синтаксис, который часто используется. Вот пример его:
01.<?php
02.$x=3;
03.switch ($x):
04.case 0:
05.echo "x=0";
06.break;
07.case 1:
08.echo "x=1";
09.break;
10.case 2:
11.echo "x=2";
12.break;
13.default:
14.echo "x не равен 0, 1 или 2";
15.endswitch;
16.?>
В нем нет ”{ }” для определение начала, а используется “ :”
А для конца - endswitch;
Практическая работа №16 Операторы инкремента и
декремента
Аналогично многим языкам программирования в PHP есть
“Операторы инкремента и декремента”. Это операторы которые
увеличивают или уменьшают числовое значение на 1. Их всего 4
штуки. Для удобство выведены в таблицу:
27
Для того чтобы понять как они работаю, рассмотрим каждый по
порядку. Смотрим таблицу и подставляем, что должно вывести на
экран.
Постфиксный инкремент:
1.<?php
2.$a = 5;
3.echo "Должно быть 5 - Вывело: " . $a++ . "</br>";
4.echo "Должно быть 6 - Вывело: " . $a . "</br>";
5.?>
Префиксный инкремент:
1.<?php
2.$a = 5;
3.echo "Должно быть 6 - Вывело: " . ++$a . "</br>";
4.echo "Должно быть 6 - Вывело: " . $a . "</br>";
5.?>
Постфиксный декремент:
1.<?php
2.$a = 5;
3.echo "Должно быть 5 - Вывело: " . $a-- . "</br>";
4.echo "Должно быть 4 - Вывело: " . $a . "</br>";
5.?>
Префиксный декремент:
1.<?php
2.$a = 5;
3.echo "Должно быть 4 - Вывело: " . --$a . "</br>";
4.echo "Должно быть 4 - Вывело: " . $a . "</br>";
5.?>
Практическая работа №17 Цикл while
Циклы позволяют повторять определенное количество раз
различные операторы. Данные операторы называются телом цикла.
Одно выполнение цикла называется итерацией. Цикл while
являются простейшим видом циклов в PHP.
Цикл while работает по следующей схеме:
1. Вычисляется значение логического выражения.
28
2. Если значение истинно, выполняется тело цикла, в
противном случае - переходим на следующий за циклом
оператор.( Это и есть итерация)
Синтаксис цикла:
1.<?php
2.while (логическое_выражение) {
3.инструкция;
4.}
5.?>
Живой пример работы цикла:
1.<?php
2.$a = 0;
3.while ( $a<=5 ) {
4.$a++; // Увеличиваем значение на 1
5.echo $a.'</br>'; // 1 2 3 4 5 6
6.}
7.?>
В данном примере как раз применяются “Операторы инкремента и
декремента”, которые мы рассматривали на прошлом уроке. Код
выведет на экран все цифры начиная с 1 до 6. Откуда взялась
единица, если $a = 0; ? И откуда взялась 6, если стоит условие
$a<=5 ?
На самом деле все просто. Вывод переменной происходит в теле
цикла. А в теле цикла у нас стоит постфиксный инкремент.
Следовательно, в теле цикла переменная $а=0; увеличилась на 1.
Цикл выполняется до тех пор пока в условии цикла ИСТИНА
(true).
Бойтесь бесконечных циклов. Простой пример такого цикла
представлен ниже. Максимум что у Вас будет, это повиснет
браузер, так как старица будет вечно загружаться до тех пор, пока
php не просчитает цикл. А он этого никогда не сделает, так как
цикл бесконечный!
1.<?php
2.$a = 0;
3.while ( $a<5 ) {
4.echo $a.'</br>'; // Повиснет браузер
5.}
6.?>
В данном пример условие цикла всегда true (Истина).
Следовательно, число итераций будет бесконечное. Напомню еще
раз, цикл выполняется до тех пор, пока условие ИСТИНА.
29
У цикла while тоже есть альтернативный синтаксис:
1.<?php
2.$i = 0;
3.while ($i <= 5):
4.$i++;
5.echo $i.'</br>'; // 1 2 3 4 5 6
6.endwhile;
7.?>
Практическая работа №18 Цикл do-while
В отличие от цикла while, который мы рассматривали на
предыдущем уроке, цикл do-while проверяет значение выражения
не до, а после каждого прохода (итерации). Таким образом,
итерация выполняется хотя бы один раз!!!
Синтаксис цикла do-while:
1.<?php
2.do {
3.тело_цикла;
4.}
5.while (логическое_выражение);
6.?>
Пример использования:
1.<?php
2.$x = 1;
3.do {
4.echo $x.'</br>';
5.} while ( $x++ < 5 );
6.?>
Выведет цифры от 1 до 5. Теперь разберем пример. В логическое
выражение поставим не true, а false.
1.<?php
2.$x = 1;
3.do {
4.echo $x.'</br>'; // Выведет 1
5.} while ( $x++ < 0 );
6.?>
30
Практическая работа №19 Цикл for
Цикл for самый популярный и в тоже время самый сложный
цикл в PHP.
Синтаксис цикла for :
1.<?php
2.for (инициализирующие команды; условие цикла; команды
после итерации) {
3.тело цикла;
4.}
5.?>
Самое интересное, что стоит в круглых скобках:
1. Инициализирующие команды - В основном задание
счетчика. Данные команды выполняются только один раз!
2. Условие цикла – аналог if, проверяет условие на true или
false. Если TRUE цикл выполняется.
3. Команды после итерации – команды выполняются до тех
пор, пока условие TRUE. В основном увеличение счетчика.
По-сути это три части, которые разделяются точкой с запятой. В
этих частях можно писать бесконечное число команд.
Пример работы цикла for:
1.<?php
2.for ($x=0; $x<10; $x++) {
3.echo $x.'<br/>'; // 0123456789
4.}
5.?>
 Инициализирующая команда – Задание счетчика. $x=0;
 Условие выполнение цикла – Пока переменная не больше 10.
$x<10;
 Команда после каждой итерации – Увеличение счетчика на 1.
$x++
Более сложный пример:
Задача вывести на экран переменную $a от 0 до 5 и переменную $b
от 0 до 9 . В теле цикла надо будет выполнить еще одну проверку,
поскольку счетчик будет увеличиваться и переменной $a будут
присваиваться значения.
1.<?php
2.for ($a=0, $b = 0; $a <5 OR $b<10 ; $a++, $b++) {
3.if ($a <=5 ) {
4.echo 'Переменная a - '.$a.'<br/>';
5.}
31
6.echo 'Переменная b - '.$b.'<br/>'; //
7.}
8.?>
Очень важный момент, как видно из примера команды
разделяться запятыми. Для наглядности я сделал два условие в
части "Условие цикла". Можно обойтись одним:
1.<?php
2.for ($a=0, $b = 0; $a <5 OR $b<10 ; $a++, $b++) {
3.if ($a <=5 ) {
4.echo 'Переменная a - '.$a.'</br>';
5.}
6.echo 'Переменная b - '.$b.'</br>'; //
7.}
8.?>
А цикла есть альтернативный синтаксис:
1.<?php
2.for(инициализирующие команды; условие цикла; команды
после итерации):
3.тело цикла;
4.endfor;
5.?>
Простой пример:
1.<?php
2.for($x=0; $x < 5; $x++):
3.echo $x.'<br/>';
4.endfor;
5.?>
Если цикл простой, можно укорачивать его до 2 частей:
1.<?php
2.for($x=0; ++$x < 5;):
3.echo $x.'<br/>';
4.endfor;
5.?>
Опять же бойтесь бесконечных циклов. Вот пример такого:
1.<?php
2.for($x=0; ; $x ++ ) {
3.echo $x.'<br/>';
4.}
5.?>
Почему цикл получился бесконечный? Если посмотреть в часть
условие цикла, то там пусто. А цикл for по-умолчанию всегда
TRUE!!!
Цикл можно прервать с помощью условного оператора break;
32
Давайте решим неординарную задачу. Создадим бесконечный
цикл, но при достижение определенного значение цикл
заканчивается.
Пример решения:
1.<?php
2.$cont = 20;
3.for($x=0; ; $x ++ ) {
4.if ($x > $cont) {break;}
5.echo $x.'<br/>';
6.}
7.?>
Практическая работа №20 Тип данных массивы
В этой практической работе мы разберем тип данных –
Массивы. По простому, массивы это холодильник, где имеются
полочки и на каждой полочке лежат продукты.
Синтаксис массива:
1.
2.$имя[индекс];
3.
Где Имя – это имя массива. А в квадратных скобочках его индекс.
Например, имя играет роль холодильника, а индекс играет роль
продукта. Если индекс числовое значение, то такой массив
называется простой массив, а если буквенный, то ассоциативный
массив.
Посмотрим пример простого массива:
01.<?php
02.
03.// Здесь: names - имя массива, а 0, 1, 2, 3 - индексы
массива
04.$names[0]="Апельсин";
05.$names[1]="Банан";
06.$names[2]="Груша";
07.$names[3]="Помидор";
08.
09.// Вывод элемента массива names с индексом 0
10.echo $names[0];
11.
12.?>
В примере, names - имя массива, а 0, 1, 2, 3 - индексы массива.
Индексы могут быть в любом разбросе. Например:
33
01.<?php
02.
03.// Здесь: names - имя массива, а 0, 1, 2, 3 - индексы
массива
04.$names[100]="Апельсин";
05.$names[5]="Банан";
06.$names[300]="Груша";
07.$names[150]="Помидор";
08.
09.// Вывод элемента массива names с индексом 300
10.echo $names[300];
11.
12.?>
Если индексы не проставлять, то они начинаются с нуля!!!
01.<?php
02.$names[]="Апельсин"; // индекс 0
03.$names[]="Банан";// индекс 1
04.$names[]="Груша";// индекс 2
05.$names[]="Помидор";// индекс 3
06.
07.// Вывод элемента массива names с индексом 3
08.echo $names[3];
09.
10.?>
Это надо запомнить, что если не установлен индекс, то он
начинается с нуля!
Для работы с массивами есть специальная функция Array().
Синтаксис функции Array();
1.<?php
2.$arr = Array('key0'=>'val0' , 'key1'=>'val1'); //
Определяем массив
3.echo $arr['key0']; // Обращение к элементу с ключом key.
Выведет val0
4.?>
Запишем выше пример, используя эту функцию:
1.<?php
2.$names = Array( 0=>'Апельсин', 1=>'Банан', 2=>'Груша',
3=>'Помидор');
3.echo $names[0];
4.?>
Можно укоротить запись опустив индексы:
1.<?php
2.$names = Array('Апельсин','Банан', 'Груша', 'Помидор');
34
3.echo $names[0];
4.?>
Индексы начинаются с нуля. Поэтому нулевому индексу
соответствует – Апельсин.
Теперь рассмотрим пример ассоциативного массива:
1.<?php
2.$names["Иванов"]="Иван";
3.$names["Сидоров"]="Николай";
4.$names["Петров"]="Петр";
5.// фамилии - это ключи ассоциативного массива, а имена -
элементы массива names
6.
7.echo $names["Иванов"];
8.?>
Ассоциативные массивы особенно удобны в ситуациях, когда
элементы массива удобнее связывать со словами, а не с числами.
Всё что мы рассматривали это были одномерные массивы.
Но массивы бывают и многомерными. То есть они содержат
несколько ключей и несколько индексов. Пример такого массива:
01.<?php
02.// Многомерный простой массив:
03.$names[0][0]="Овощи";
04.$names[0][1]="Фрукты";
05.$names[1][0]="Абрикос";
06.$names[1][1]="Апельсин";
07.$names[1][2]="Банан";
08.$names[2][0]="Огурец";
09.$names[2][1]="Помидор";
10.$names[2][2]="Тыква";
11.
12.echo $names[0][1];
13.?>
Для лучшего понимания, лучше использовать многомерные
ассоциативные массивы и специальную функцию Array(); которую
мы рассмотрели выше. Пример:
1.<?php
2.// Многомерный массив
3.$A["Ivanov"] = array("name"=>"Иванов
И.И.", "age"=>"25", "email"=>"ivanov[@]mail.ru");
4.$A["Petrov"] = array("name"=>"Петров
П.П.", "age"=>"34", "email"=>"petrov[@]mail.ru");
5.$A["Sidorov"] = array("name"=>"Сидоров
С.С.", "age"=>"47", "email"=>"sidorov[@]mail.ru");
35
6.
7.echo $A["Ivanov"]["name"];
8.?>
Практическая работа №21 Смотрим структуру массива
Очень часто в массив, данные приходят через переменные,
которые тянуться из базы данных. Возникает вопрос, как
посмотреть весь массив сразу? Давайте решим данную задачу.
Допустим есть массив:
1.<?php
2.$names[]="Апельсин";
3.$names[]="Банан";
4.$names[]="Груша";
5.$names[]="Помидор";
6.?>
Надо показать всю его структуру. Для этого есть функция print_r.
Она как раз и выводит пригодную для чтения человеком
информацию о переменной. Если задан тип string, integer или float,
печатается само значение. Если задан тип array(массив), значения
будут представлены в формате с показом ключей и элементов
массива.
Пример использования функции print_r:
01.<?php
02.$names[]="Апельсин";
03.$names[]="Банан";
04.$names[]="Груша";
05.$names[]="Помидор";
06.
07.echo '<pre>';
08.print_r($names);
09.echo '</pre>';
10.?>
Выдаст:
1.Array
2.(
3.[0] => Апельсин
4.[1] => Банан
5.[2] => Груша
6.[3] => Помидор
7.)
36
Для общего сведения. По-сути вывод похож на синтаксис
функций Array(); Нам остается только расставить запятые и
кавычки. Функцию Array(); мы рассматривали на прошлом уроке.
Пример:
01.<?php
02.$names = Array
03.(
04.'0' => 'Апельсин',
05.'1' => 'Банан',
06.'2' => 'Груша',
07.'3' => 'Помидор'
08.);
09.echo $names['0'];
10.?>
11.
Практическая работа №22 Цикл foreach
Конструкция foreach предоставляет простой способ перебора
массивов. Цикл работает только с массивами и объектами, и будет
генерировать ошибку при попытке использования с переменными
других типов или неинициализированными переменными.
Синтаксис цикла foreach:
1.
2.<?php
3.foreach (массив as $ключ=>$значение) {
4.команды;
5.}
6.?>
7.
Здесь команды циклически выполняются для каждого элемента
массива, при этом очередная пара ключ=>значение оказывается в
переменных $ключ и $значение.
Пример работы цикла foreach:
01.
02.<?php
03.$names = Array
04.(
05.'0' => 'Апельсин',
06.'1' => 'Банан',
07.'2' => 'Груша',
08.'3' => 'Помидор'
09.);
37
10.foreach ($names as $key => $value) {
11.echo '<p>значение - '.$value.' , а ключ (индекс)
'.$key.'</p>';
12.}
13.?>
14.
Выдаст:
 значение - Апельсин , а ключ (индекс) 0
 значение - Банан , а ключ (индекс) 1
 значение - Груша , а ключ (индекс) 2
 значение - Помидор , а ключ (индекс) 3
У цикла foreach имеется и укороченная форма записи, которую
следует применять, когда нас не интересует значение ключа
очередного элемента. Синтаксис:
1.
2.<?php
3.foreach (массив as $значение) {
4.команды;
5.}
6.?>
7.
Пример использования синтаксиса:
01.
02.<?php
03.$names = Array
04.(
05.'0' => 'Апельсин',
06.'1' => 'Банан',
07.'2' => 'Груша',
08.'3' => 'Помидор'
09.);
10.foreach ($names as $value) {
11.echo '<p>Значение - '.$value.'</p>';
12.}
13.?>
14.
38
Практическая работа №23 Основы про функции
Функция – программный блок, который может многократно
выполняться в любом месте сценария. Название функции
регистронезависимое.
Синтаксис:
1.<?php
2.function ИмяФункции (аргумент1[=значение1], …,
аргументN[=значениеN]) {
3.команды;
4.(Или вложенная функция);
5.}
6.?>
Синтаксис вызова функции:
1.<?php
2.ИмяФункции (аргумент1[=значение1], …,
аргументN[=значениеN]);
3.?>
Функцию можно вызывать бесконечное количество раз!
Простой пример:
01.<?php
02.// Описание функции
03.function sayHello(){
04.echo "Hello, world!";
05.}
06.
07.// Вызов функции
08.sayHello(); // Hello, world!
09.sayHello(); // 2 раз
10.?>
Функцию нельзя декларировать более одного раза. То есть двух
одинаковых названий функций быть не может. В самом php
встроенных функций несколько тысяч. Поэтому, когда пишете свои
функции, называйте их уникально и понятно.
Давайте теперь передадим какой-нибудь параметр. То есть если
посмотреть выше на синтаксис функции. То в круглых скобочках
как раз таки и передаются параметры функции.
Пример:
01.<?php
02.// Описание функции
03.function sayHello($name){
04.echo 'Привет - '.$name;
05.}
39
06.
07.// Вызов функции
08.sayHello('Вова');
09.?>
В данном примере мы передали функции что
переменная $name равна “Вова”.
Можно в вызове функции использовать переменные, а не сразу
значение переменной. Точнее нужно :-)
Пример:
01.<?php
02.// Описание функции
03.function sayHello($name){
04.echo 'Привет - '.$name;
05.}
06.
07.// Вызов функции
08.
09.$my_name = 'Дима';
10.sayHello($my_name);
11.
12.?>
Есть и третий вариант. Он редко используется, но знать о нем надо.
01.<?php
02.// Описание функции
03.function sayHello($name){
04.echo 'Привет - '.$name;
05.}
06.
07.// Вызов функции
08.
09.$my_name = 'Дима';
10.$str = 'sayHello';
11.$str($my_name);
12.?>
В данном примере имя функции засунуто в переменную. И уже эта
переменная ведет себя как функция! Почему так получается? Когда
php доходит до символов $str( Он понимает что от него требуется
вызвать функцию, Следовательно он идет к этой переменной и
смотрит что там. А там название функции. Он ищет в коде
функцию с этим названием и вызывает ее. Это очень важный
момент его надо просто понять.
40
Еще один важный момент. Количество параметр передаваемых
может быть неограниченное число. А разделаются они запятыми.
Пример:
01.<?php
02.// Описание функции
03.function sayHello($hello,$name){
04.echo $hello.' - '.$name;
05.}
06.
07.// Вызов функции
08.
09.$my_name = 'Дима';
10.$my_hello = 'Привет';
11.sayHello($my_hello,$my_name);
12.?>
В данном примере передается два параметра. А что будет? Если я в
выводе вместо :
1.<php
2.sayHello($my_hello,$my_name);
3.// Привет - Дима
4.?>
Напишу :
1.<php
2.sayHello($my_name, $my_hello);
3.?>
А будет “Дима – Привет”. Почему так происходит? А потому что
передача в функцию осуществляется по порядку!!!
Еще один важный момент!!! Что будет, если мы вдруг не
передадим параметр функции? Пример такого кода:
01.<?php
02.// Описание функции
03.function sayHello($name){
04.echo 'Привет - '.$name;
05.}
06.
07.// Вызов функции
08.sayHello();
09.?>
А получу я ошибку:
1.
2.Warning: Missing argument 1 for sayHello()
3.
41
Нам php говорит, мол нет аргумента. Как быть? Живой пример. У
нас например, система приветствия на сайте. И нам должно по
логике вещей, если эта не зарегистрированный пользователь
показать надпись “Привет Гость”. Для этих целей есть такая штука
как параметр по умолчанию. Задается он в круглых скобках самой
функции. Пример правильной записи:
01.<?php
02.// Описание функции
03.function sayHello($name='Гость'){
04.echo 'Привет - '.$name;
05.}
06.
07.// Вызов функции
08.sayHello(); // Привет - Гость
09.?>
В данном пример мы не передали аргумент , но выставили
аргумент по умолчанию:
Давайте теперь передадим:
01.<?php
02.// Описание функции
03.function sayHello($name='Гость'){
04.echo 'Привет - '.$name;
05.}
06.
07.// Вызов функции
08.$user = 'Вова';
09.sayHello($user);
10.?>
Практическая работа №24 Область видимости переменной
В php существует две области видимости. Локальная и
глобальная.
Пример кода:
01.<?php
02.$gl = 'глобальная переменная';
03.function sayHello () {
04.$loc = 'локальная переменная';
05.echo 'Привет я функция – в локальной области видимости
и я '.$loc.'<br/>';
06.}
07.sayHello();
08.// Глобальная переменная
42
09.echo 'Привет – Я в глобальной области видимости и я
'.$gl.'<br/>';
10.//Локальная переменная
11.echo 'Привет – Я в глобальной области видимости и я
'.$loc.'<br/>';
12.?>
Все что входит в глобальную видимость кода это вот:
01.<?php
02.$gl = 'глобальная переменная';
03.function sayHello ( // Именно так!
04.sayHello();
05.// Глобальная переменная
06.echo 'Привет – Я в глобальной области видимости и я
'.$gl.'<br/>';
07.//Локальная переменная
08.echo 'Привет – Я в глобальной области видимости и я
'.$loc.'<br/>';
09.?>
Все остальное, что осталось от исходного кода, это локальная
область видимости. Следовательно, переменная $gl –
это глобальная переменная, а переменная $loc – это локальная
переменная. Переменные объявленные в локальной области
видимости, не видны в глобальной! Следовательно, при выводе
через оператор echo переменную $loc – он не вывел!
Вообще, когда php идет по коду, он не видит что находиться
в function , до тех пор, пока ее не вызвали! Поэтому все
переменные, объявленные в функции, дальше функции не уйдут.
Когда php выполнит функцию, он удалит все существующие
переменные в функции. И они не будут доступны не из функции.
Возникает вопрос, как же сделать так, чтобы переменная
объявленная в функции (или в локальной области видимости) была
доступны в глобальной области видимости?
Есть решение этой задачи. И решений таких, всего два.
Первое:
Объявить переменную в функции с помощью ключевого
слова global. Вот как это выглядит в коде:
01.<?php
02.$gl = 'глобальная переменная';
03.function sayHello () {
04.global $loc; // Объявляем что она глобальная.
05.$loc = 'Теперь я глобальная переменная.';
43
06.echo 'Привет я функция – в локальной области видимости
и я '.$loc.'<br/>';
07.}
08.sayHello();
09.// Глобальная переменная
10.echo 'Привет – Я в глобальной области видимости и я
'.$gl.'<br/>';
11.//Локальная переменная
12.echo 'Привет – Я в глобальной области видимости и я
'.$loc.'<br/>';
13.?>
Теперь переменная $loc глобальная и следовательно она
выводиться через оператор echo!
Рассмотрим второй вариант. Но чтобы его рассмотреть, надо
сначала разобраться в устройстве php. Значит смотрите, когда мы
создаем переменную и присваиваем ей значение:
1.
2.$age = 25;
3.
А php делает это по-другому. У него есть свой
массив $GLOBALS[] в котором хранятся все переменные. Когда мы
пишем вот так вот: $age = 25; PHP на самом деле делает вот так:
1.
2.$GLOBALS['age'] = 25;
3.
Создадим функцию, которая складывает две переменных, но не
выводит результата. А выводит результат мы будем из локальной
области видимости в глобальную через echo.
01.<?php
02.$a = 1;
03.$b = 2;
04.function Sum(){
05.global $a, $b;
06.$b = $a + $b;
07.}
08.Sum();
09.echo $b; //Выведет 3
10.?>
Заменим global:
01.<?php
02.$a = 1;
03.$b = 2;
04.function Sum(){
44
05.$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
06.}
07.Sum();
08.echo $b; //Выведет 3
09.?>
Ответ тот же самый! Следовательно, способ работает.
Помимо локальных и глобальных переменных, существует еще
один тип – статические переменные. Если в теле
пользовательской функции объявлена статическая переменная, то
компилятор не будет ее удалять после завершения работы этой
функции.
Допустим есть функция:
01.<?php
02.function Test() {
03.$a = 0;
04.echo $a++;
05.}
06.Test(); // 0
07.Test(); // 0
08.Test(); // 0
09.?>
Почему выдается ноль ? Опять же, всё что находиться в функции
не сохраняется! Но чтобы работало, нам необходимо сделать
переменную статической. Объявив ее ключевым словом static и
задав ей какое-то значение!
01.<?php
02.function Test() {
03.static $a = 0;
04.echo $a++;
05.}
06.Test(); // 0
07.Test(); // 1
08.Test(); // 2
09.?>
Уже выводит, как и должно. 0 1 2 и тд в зависимости от количества
вызова функции.
Практическая работа №25 Возврат значения функции с
помощью return
В 90 процентов при работе с функциями необходимо, чтобы
функция не выдавала какой-то результат сразу, а просто отработала
45
и например хранила результат своей работы в переменной или мы
могли в любой момент ее вызвать в каком либо куске кода.
Для этих целей существует конструкция return. Она возврат
значения в функции. Пример:
1.<?php
2.function mySum($n1,$n2) {
3.$res = $n1+$n2;
4.return $res;
5.}
6.$result = mySum(2,3);
7.echo $result; // 5
8.?>
В данном примере мы вернули результат работы функции в
переменную. Можно упростить запись заменив:
1.$res = $n1+$n2;
2.return $res;
На:
1.return $n1+$n2;
Если нам надо просто вывести результат работы функции и
работать с ней далее. Тогда заменим:
1.$result = mySum(2,3);
2.echo $result;
На:
1.echo mySum(2,3);
Помимо всего выражение return() немедленно прекращает
выполнение текущей функции и возвращает свой аргумент как
значение данной функции. Пример кода:
view source
print?
1.<?php
2.function mySum($n1,$n2) {
3.return $n1+$n2;
4.echo 'Я не сработаю, так как до меня стоит return';
5.}
6.echo mySum(2,3);
7.?>
46
Практическая работа №26 Функция is_array для работы с
переменными
Существует много различных функций для работы с
переменными. Частично мы их разберем в следующих 10 уроков.
Первая из таких - функция is_array - она определяет, является ли
данная переменная массивом. Работает просто, возвращает TRUE,
если переменная является массивом array, или FALSE в противном
случае.
Создадим массив и проверим работу функции.
01.<?php
02.$my_array = array('Значение 1', 'Значение 2');
03.
04.if (is_array($my_array)) {
05.echo 'Массив';
06.} else {
07.echo 'Не массив';
08.}
09.?>
Выдаст – Массив. Теперь подставим в функцию не массив.
1.<?php
2.$no_array = 'это строка';
3.if (is_array($no_array)) {
4.echo 'Массив';
5.} else {
6.echo 'Не массив';
7.}
8.?>
Как Вы уже догадались, должно вывести - Не массив.
Мы кстати не использовали укороченные записи if-else. Давайте
перепишем данный кусок кода:
1.<?php
2.$my_array = array('Значение 1', 'Значение 2');
3.echo is_array($my_array) ? 'Массив' : 'Не массив';
4.?>
Практическая работа №27 Функция is_bool для работы с
переменными
Функция is_bool - определяет, является ли данная переменна
булевой(boolean). Работает просто, возвращает TRUE, если
переменная является типом boolean, или соответственно FALSE.
Проверим работу функции:
47
1.<?php
2.$my_bool = true;
3.echo is_bool($my_bool) ? 'Да, это булевая
переменная' : 'Нет, это не булевая переменная';
4.?>
Выведет – “Да, это булевая переменная”.
Рассмотрим еще один пример, только теперь переменная будет
равна FALSE:
1.<?php
2.$my_bool = false;
3.echo is_bool($my_bool) ? 'Да, это булевая
переменная' : 'Нет, это не булевая переменная';
4.?>
Выведет – “Да, это булевая переменная”. Почему ? Напомню Вам
что функция определяет являться ли переменная boolean типом.
А тип boolean это TRUE и FALSE. (регистронезависимые)
Следовательно, если мы например подставим число:
1.<?php
2.$my_bool = 5;
3.echo is_bool($my_bool) ? 'Да, это булевая
переменная' : 'Нет, это не булевая переменная';
4.?>
Практическая работа №28 Функция is_integer для работы с
переменными
Функция is_integer она же is_int - определяет, является ли
переменная целочисленного типа. Работает просто, возвращает
TRUE, если переменная является целочисленной, FALSE – если это
не так.
Проверим работу функции:
1.<?php
2.$my_int = 5;
3.echo is_int($my_int) ? 'Да, переменная является
целочисленной' : 'Нет';
4.?>
Изменим переменную на нецелое число:
1.<?php
2.$my_int = 5.2;
3.echo is_int($my_int) ? 'Да, переменная является
целочисленной' : 'Нет';
4.?>
48
Функция сказала это не целочисленная переменная и поэтому
вывела – “нет”
Занесем число в кавычки:
1.<?php
2.$my_int = '5';
3.echo is_int($my_int) ? 'Да, переменная является
целочисленной' : 'Нет';
4.?>
Практическая работа №29 Функция is_float для работы с
переменными
Функция is_float - проверяет, является ли переменная числом
с плавающей точкой. Возвращает TRUE, если переменная является
переменной типа float, FALSE в противном случае.
Проверим работу функции:
1.<?php
2.$a = 5.2;
3.echo is_float($a) ? 'Да, переменная является переменной
типа float' : 'Нет';
4.?>
Вывело – Да. Изменим переменную на целое число:
1.<?php
2.$a = 5;
3.echo is_float($a) ? 'Да, переменная является переменной
типа float' : 'Нет';
4.?>
Практическая работа №30 Функция is_null для работы с
переменными
Функция is_null - Проверяет, является ли значение
переменной равным NULL. Возвращает TRUE, если переменная
равна null, или FALSE в противном случае.
Проверим работу функции:
1.<?php
2.$a = null;
3.echo is_null($a) ? 'Да' : 'Нет';
4.?>
49
Подставим например строку:
1.<?php
2.$a = 'null'; // строка
3.echo is_null($a) ? 'Да' : 'Нет';
4.?>
Практическая работа №31 Функция is_string для работы с
переменными
Функция is_string - проверяет, является ли переменная
строкой. Возвращает TRUE, если переменная является строкой, или
FALSE в противном случае. Так как мы в основном гоняем туда-
сюда строки, то эту функцию Вы должны знать наизусть.
Проверим работу функции:
1.<?php
2.$a = 'text';
3.echo is_string($a) ? 'Да, строка' : 'Нет, не строка';
4.?>
Подставим число:
1.<?php
2.$a = 5;
3.echo is_string($a) ? 'Да, строка' : 'Нет, не строка';
4.?>
Выведет – Нет, так как это не строка. А вот если мы 5 в кавычки
поставим, то будет строка!
Практическая работа №32 Функция is_scalar для работы с
переменными
Функция is_scalar - проверяет, является ли переменная скалярным
значением. Возвращает TRUE, если переменная является
скалярным значением, или FALSE в противном случае.
Скалярные переменные - это переменные с типами integer, float,
string и boolean. Типы array, object и resource не являются
скалярными.
Проверим работу функции:
1.<?php
2.$a = 5;
3.echo is_scalar($a) ? 'Да' : 'Нет';
4.?>
Подставим массив:
1.<?php
50
2.$a = array(' Значение1',' Значение2');
3.echo is_scalar($a) ? 'Да' : 'Нет';
4.?>
Практическая работа №33 Функция is_numeric для работы с
переменными
Функция is_numeric - проверяет, является ли переменная
числом или строкой, содержащей число. Возвращает TRUE, если
var является числом или строкой, содержащей число, в противном
случае возвращается FALSE.
Ну для начало разберемся, что означает в данной функции понятие
– “строка содержащие число”.
Пример:
1.<?php
2.$a = 5; // Число
3.?>
Переменная $a = числу. Пример со строкой:
1.<?php
2.$a = '5';
3.?>
В данном случаи переменная $a = строка, но содержащие число.
Кстати мы уже несколько уроков не работали с массивами.
Исправим это, и следующий пример будет с массивом.
01.<?php
02.$tests = array(
03."42",
04."строка + число - 4",
05.1337,
06."1e4",
07."просто строка",
08.array(),
09.9.1
10.);
11.
12.foreach ($tests as $element) {
13.if (is_numeric($element)) {
14.echo "$element - число<br/>";
15.} else {
16.echo "$element - НЕ число<br/>";
17.}
18.}
19.?>
51
Выдаст:
1.42 - число
2.строка + число - 4 - НЕ число
3.1337 - число
4.1e4 - число
5.просто строка - НЕ число
6.Array - НЕ число
7.9.1 - число
Практическая работа №34 Функция gettype для работы с
переменными
Функция gettype - возвращает тип PHP-переменной. С
данной функцией мы уже знакомились в уроке “ Типы данных ”.
Но как говориться: ,,Повторение - мать учение!” Ну или как-то там
так.
Пример работы функции:
1.<?php
2.$a = '5';
3.$b = 5;
4.echo gettype($a).'<br/>';
5.echo gettype($b);
6.?>
Выдаст:
1.Строка (string)
2.Число (integer)
Практическая работа №35 Функция settype для работы с
переменными
Функция settype - присваивает переменной новый тип. До
этого мы только определяли тип, а теперь мы его будем менять.
Синтаксис функции:
1.
2.settype(переменная, "новый тип");
3.
Давайте изменим тип строка на число. Пример:
01.<?php
02.$a = '5';
03.//определили тип и вывели
04.echo gettype($a).'<br/>';
05.//изменили тип
06.settype($a, "integer");
07.echo gettype($a).'<br/>';
52
08.echo $a;
09.?>
Вывело:
1.string
2.integer
3.5
В данном примере мы в качестве переменной использовали число в
кавычках, а что будет, если мы простую строку подставим и
изменим тип. Пример:
01.<?php
02.$a = 'test';
03.//определили тип и вывели
04.echo gettype($a).'<br/>';
05.//изменили тип
06.settype($a, "integer");
07.echo gettype($a).'<br/>';
08.echo $a;
09.?>
Вывело:
1.string
2.integer
3.0
Практическая работа №36 Функция unset для работы с
переменными
Функция unset – удаляет переменную из той области
видимости, где используется данная функция. Напомню областей
всего две: глобальная область видимости и локальная область
видимости. Области видимости мы уже проходили в уроке
“Область видимости переменной”. Кто его не понял, читаем еще
раз.
Пример работы функции:
1.<?php
2.$a = 'test';
3.echo 'До удаления - '.$a.'<br/>';
4.unset($a);
5.echo 'После удаления - '.$a.'<br/>';
6.?>
Переменная была удаленна из глобальной области видимости.
Теперь рассмотрим пример, в котором мы будет удалять ее в
локальной области видимости.
53
01.<?php
02.function test($a) {
03.echo 'До удаления, в локальной области видимости -
'.$a.'<br/>';
04.unset($a);
05.echo 'После удаления, , в локальной области видимости -
'.$a.'<br/>';
06.}
07.$a = 'test';
08.echo test($a);
09.echo 'В глобальной области видимости - '.$a;
10.?>
Практическая работа №37 Функция var_dump
Функция var_dump - отображает структурированную
информацию об одном или нескольких выражениях, включая их
тип и значение. Массивы и объекты анализируются рекурсивно с
разным отступом у значений для визуального отображения
структуры. Всё для людей в этой функции.
1.<?php
2.$a = array(1, 2, array("a", "b", "c"));
3.echo '<pre>';
4.var_dump($a);
5.echo '</pre>';
6.?>
Выведет на экран, полную структуру массива с индексами, типами
данных и сами данные.
01.array(3) {
02.[0]=>
03.int(1)
04.[1]=>
05.int(2)
06.[2]=>
07.array(3) {
08.[0]=>
09.string(1) "a"
10.[1]=>
11.string(1) "b"
12.[2]=>
13.string(1) "c"
14.}
15.}
54
Практическая работа №38 Функция var_export, аналогична
уже рассмотренной функции var_dump
Функция var_export - функция аналогична уже
рассмотренной функции var_dump() за одним исключением:
возвращаемое представление является полноценным PHP кодом!
1.<?php
2.$a = array(1, 2, array("a", "b", "c"));
3.echo '<pre>';
4.var_export($a);
5.echo '</pre>';
6.?>
Нам вывелся полноценный php код всего массива:
01.array (
02.0 => 1,
03.1 => 2,
04.2 =>
05.array (
06.0 => 'a',
07.1 => 'b',
08.2 => 'c',
09.),
10.)
Практическая работа №39 Математическая функция abs -
модуль числа
Функция abs – модуль числа. Очень часто, нам необходимо,
в каких либо расчетах, чтобы число было всегда положительное.
Для этого как раз и существует данная функция. Функция сама по
себе очень простая.
Пример работы функции:
1.<?php
2.// Модуль -4.2 = 4.2
3.echo $a = abs(-4.2).'<br/>'; // Тип float!
4.// Модуль 5 = 5
5.echo $a = abs(5).'<br/>';
6.// Модуль -5 = 5
7.echo $a = abs(-5).'<br/>';
8.?>
Если переменная имеет тип float, возвращаемое значение также
будет иметь тип float, по умолчанию - integer!
55
Практическая работа №40 Математические функции rad2deg и
deg2rad конвертирования градусов в радианы и наоборот
Функции rad2deg и deg2rad. Задача конвертировать градусы в
радианы и наоборот.
Пример rad2deg - конвертирует количество радиан в
эквивалентное количество градусов:
1.<?php
2.$a = 60;
3.echo rad2deg($a);
4.?>
Пример deg2rad – наоборот конвертирует градусы в радианы:
1.<?php
2.$a = 60;
3.echo deg2rad($a);
4.?>
Практическая работа №41 Математические функции косинуса
и синуса (cos и sin)
Функции sin и cos – возвращают синус или косинус
переменной.
Пример синуса:
1.<?php
2.$a = 60;
3.echo sin($a);
4.?>
Пример косинуса:
1.<?php
2.$a = 60;
3.echo cos($a);
4.?>
Практическая работа №42 Все остальные математические
функции
Ну все математические функции работают также, как и те
функции, которые мы рассматривали ранее.
Список всех математических функций:
abs — Модуль числа
acos — Арккосинус
acosh — Гиперболический арккосинус
56
asin — Арксинус
asinh — Гиперболический арксинус
atan2 — Арктангенс двух переменных
atan — Арктангенс
atanh — Гиперболический арктангенс
base_convert — Преобразование числа между произвольными
системами счисления
bindec — Двоичное в десятичное
ceil — Округляет дробь в большую сторону
cos — Косинус
cosh — Гиперболический косинус
decbin — Переводит число из десятичной системы счисления в
двоичную
dechex — Переводит число из десятичной системы счисления в
шестнадцатиричную
decoct — Переводит число из десятичной системы счисления в
восьмеричную
deg2rad — Преобразует значение из градусов в радианы
exp — Вычисляет число e в степени
expm1 — Возвращает exp(number) - 1, рассчитанное таким
образом, что результат точен, даже если number близок к нулю.
floor — Округляет дробь в меньшую сторону
fmod — Возвращает дробный остаток от деления по модулю
getrandmax — Вовзращает максимально возможное случайное
число
hexdec — Переводит число из шестнадцатиричной системы
счисления в десятичную
hypot — Рассчитывает длину гипотенузы прямоугольного
треугольника
is_finite — Проверяет, является ли значение допустимым конечным
числом
is_infinite — Проверяет, является ли значение бесконечным
is_nan — Проверяет, является ли значение "не числом"
lcg_value — Комбинированный линейно конгруэнтный генератор
log10 — Десятичный логарифм
log1p — Возвращает log(1 + number), рассчитанный таким, что
результат точен, даже если значение number близко к нулю
log — Натуральный логарифм
57
max — Возвращает наибольшее значение
min — Находит наименьшее значение
mt_getrandmax — Показывает максимально возможное значение
случайного числа
mt_rand — Генерирует случайное значение методом mt
mt_srand — Переинициализирует генератор случайных чисел mt
octdec — Переводит число из восьмеричной системы счисления в
десятичную
pi — Возвращает число Пи
pow — Возведение в степень
rad2deg — Преобразует значение из радианов в градусы
rand — Генерирует случайное число
round — Округляет число типа float
sin — Синус
sinh — Гиперболический синус
sqrt — Квадратный корень
srand — Изменяет начальное число генератора псевдослучайных
чисел
tan — Тангенс
tanh — Гиперболический тангенс
Практическая работа №43 Функция explode - разбиваем строку
с помощью разделителя
Функция explode - возвращает массив строк, полученных
разбиением строки с помощью разделителя.
Синтаксис функции:
1.
2.explode ( разделитель, входная строка, ($limit -
необязательно)] )
3.
limit
Если аргумент limit является положительным, возвращаемый
массив будет содержать максимум limit элементов, при этом
последний элемент будет содержать остаток строки string.
Если параметр limit отрицателен, то будут возвращены все
компоненты кроме последних -limit.
Если limit равен нулю, то он расценивается как 1.
Давайте разберем на примере. Допустим есть строка:
1.
Сборник практических задании по Php
Сборник практических задании по Php
Сборник практических задании по Php
Сборник практических задании по Php
Сборник практических задании по Php
Сборник практических задании по Php
Сборник практических задании по Php
Сборник практических задании по Php
Сборник практических задании по Php
Сборник практических задании по Php
Сборник практических задании по Php
Сборник практических задании по Php

Mais conteúdo relacionado

Mais procurados

ノンプログラミングで API はじめて体験!_築山 春木氏
ノンプログラミングで API はじめて体験!_築山 春木氏ノンプログラミングで API はじめて体験!_築山 春木氏
ノンプログラミングで API はじめて体験!_築山 春木氏kintone papers
 
Basic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBasic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBhargav Anadkat
 
이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정Arawn Park
 
Node JS Crash Course
Node JS Crash CourseNode JS Crash Course
Node JS Crash CourseHaim Michael
 
kotlinx.serialization
kotlinx.serializationkotlinx.serialization
kotlinx.serializationArawn Park
 
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal LandソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal LandMasakazu Matsushita
 
Node Architecture and Getting Started with Express
Node Architecture and Getting Started with ExpressNode Architecture and Getting Started with Express
Node Architecture and Getting Started with Expressjguerrero999
 
Push Notification for Android, iOS & Sever Side Using Firebase Cloud Messaging
Push Notification for Android, iOS & Sever Side Using Firebase Cloud MessagingPush Notification for Android, iOS & Sever Side Using Firebase Cloud Messaging
Push Notification for Android, iOS & Sever Side Using Firebase Cloud MessagingCumulations Technologies
 
View customize pluginを使いこなす
View customize pluginを使いこなすView customize pluginを使いこなす
View customize pluginを使いこなすonozaty
 
서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해중선 곽
 
OSSライセンス入門
OSSライセンス入門OSSライセンス入門
OSSライセンス入門KageShiron
 
Pf: the OpenBSD packet filter
Pf: the OpenBSD packet filterPf: the OpenBSD packet filter
Pf: the OpenBSD packet filterGiovanni Bechis
 
Introducing type script
Introducing type scriptIntroducing type script
Introducing type scriptRemo Jansen
 
[112]rest에서 graph ql과 relay로 갈아타기 이정우
[112]rest에서 graph ql과 relay로 갈아타기 이정우[112]rest에서 graph ql과 relay로 갈아타기 이정우
[112]rest에서 graph ql과 relay로 갈아타기 이정우NAVER D2
 
Redmine 4.2で作るヘルプデスク向け問い合わせ受付・管理システム
Redmine 4.2で作るヘルプデスク向け問い合わせ受付・管理システムRedmine 4.2で作るヘルプデスク向け問い合わせ受付・管理システム
Redmine 4.2で作るヘルプデスク向け問い合わせ受付・管理システムGo Maeda
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONMario Guedes
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―shinjiigarashi
 

Mais procurados (20)

Node.js e Express
Node.js e ExpressNode.js e Express
Node.js e Express
 
ノンプログラミングで API はじめて体験!_築山 春木氏
ノンプログラミングで API はじめて体験!_築山 春木氏ノンプログラミングで API はじめて体験!_築山 春木氏
ノンプログラミングで API はじめて体験!_築山 春木氏
 
Basic Concept of Node.js & NPM
Basic Concept of Node.js & NPMBasic Concept of Node.js & NPM
Basic Concept of Node.js & NPM
 
이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정
 
Node JS Crash Course
Node JS Crash CourseNode JS Crash Course
Node JS Crash Course
 
kotlinx.serialization
kotlinx.serializationkotlinx.serialization
kotlinx.serialization
 
Webpack slides
Webpack slidesWebpack slides
Webpack slides
 
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal LandソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
 
Node Architecture and Getting Started with Express
Node Architecture and Getting Started with ExpressNode Architecture and Getting Started with Express
Node Architecture and Getting Started with Express
 
Push Notification for Android, iOS & Sever Side Using Firebase Cloud Messaging
Push Notification for Android, iOS & Sever Side Using Firebase Cloud MessagingPush Notification for Android, iOS & Sever Side Using Firebase Cloud Messaging
Push Notification for Android, iOS & Sever Side Using Firebase Cloud Messaging
 
Introdução ao React
Introdução ao ReactIntrodução ao React
Introdução ao React
 
View customize pluginを使いこなす
View customize pluginを使いこなすView customize pluginを使いこなす
View customize pluginを使いこなす
 
서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해서버 성능에 대한 정의와 이해
서버 성능에 대한 정의와 이해
 
OSSライセンス入門
OSSライセンス入門OSSライセンス入門
OSSライセンス入門
 
Pf: the OpenBSD packet filter
Pf: the OpenBSD packet filterPf: the OpenBSD packet filter
Pf: the OpenBSD packet filter
 
Introducing type script
Introducing type scriptIntroducing type script
Introducing type script
 
[112]rest에서 graph ql과 relay로 갈아타기 이정우
[112]rest에서 graph ql과 relay로 갈아타기 이정우[112]rest에서 graph ql과 relay로 갈아타기 이정우
[112]rest에서 graph ql과 relay로 갈아타기 이정우
 
Redmine 4.2で作るヘルプデスク向け問い合わせ受付・管理システム
Redmine 4.2で作るヘルプデスク向け問い合わせ受付・管理システムRedmine 4.2で作るヘルプデスク向け問い合わせ受付・管理システム
Redmine 4.2で作るヘルプデスク向け問い合わせ受付・管理システム
 
Integrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSONIntegrando sua App ao Mundo via REST/JSON
Integrando sua App ao Mundo via REST/JSON
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
 

Semelhante a Сборник практических задании по Php

The basic design of the PHP language
 The basic design of the PHP language The basic design of the PHP language
The basic design of the PHP languageVladimir Burdaev
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальBadoo Development
 
C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.Igor Shkulipa
 
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art) DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art) it-people
 
Использование библиотеки анализа кода OpenC++: модификация, улучшение, исправ...
Использование библиотеки анализа кода OpenC++: модификация, улучшение, исправ...Использование библиотеки анализа кода OpenC++: модификация, улучшение, исправ...
Использование библиотеки анализа кода OpenC++: модификация, улучшение, исправ...Tatyanazaxarova
 
Perl Debugger и mod_perl
Perl Debugger и mod_perlPerl Debugger и mod_perl
Perl Debugger и mod_perlИван mrRico
 
Sw325 lekts 1
Sw325 lekts 1Sw325 lekts 1
Sw325 lekts 1D. Saraa
 
REPL в Node.js: улучшаем быт разработчик
REPL в Node.js: улучшаем быт разработчикREPL в Node.js: улучшаем быт разработчик
REPL в Node.js: улучшаем быт разработчикIT61
 
Терминология как основной способ поиска разработчиков или как не опозорится п...
Терминология как основной способ поиска разработчиков или как не опозорится п...Терминология как основной способ поиска разработчиков или как не опозорится п...
Терминология как основной способ поиска разработчиков или как не опозорится п...SBTech
 
32 подводных камня OpenMP при программировании на Си++
32 подводных камня OpenMP при программировании на Си++32 подводных камня OpenMP при программировании на Си++
32 подводных камня OpenMP при программировании на Си++Tatyanazaxarova
 
Как и зачем можно создать DSL на Python
Как и зачем можно создать DSL на PythonКак и зачем можно создать DSL на Python
Как и зачем можно создать DSL на PythonPyNSK
 
DBD lection 1. Intro in Database Design. In Russian.
DBD lection 1. Intro in Database Design. In Russian.DBD lection 1. Intro in Database Design. In Russian.
DBD lection 1. Intro in Database Design. In Russian.mikhaelsmirnov
 
Programming Concepts
Programming ConceptsProgramming Concepts
Programming ConceptsMister_Lee
 
массивы Php
массивы Phpмассивы Php
массивы PhpVasya Petrov
 
Компьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingКомпьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingTatiana Volkova
 
Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Levon Avakyan
 
терминология vol.2
терминология vol.2терминология vol.2
терминология vol.2SBTech
 
C++ теория
C++ теорияC++ теория
C++ теорияtank1975
 
C++ теория
C++ теорияC++ теория
C++ теорияtank1975
 
C++ теория
C++ теорияC++ теория
C++ теорияtank1975
 

Semelhante a Сборник практических задании по Php (20)

The basic design of the PHP language
 The basic design of the PHP language The basic design of the PHP language
The basic design of the PHP language
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон Довгаль
 
C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.
 
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art) DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
DUMP-2012 - Только хардкор! - "Расширяем PHP" Сергей Горшков (index.art)
 
Использование библиотеки анализа кода OpenC++: модификация, улучшение, исправ...
Использование библиотеки анализа кода OpenC++: модификация, улучшение, исправ...Использование библиотеки анализа кода OpenC++: модификация, улучшение, исправ...
Использование библиотеки анализа кода OpenC++: модификация, улучшение, исправ...
 
Perl Debugger и mod_perl
Perl Debugger и mod_perlPerl Debugger и mod_perl
Perl Debugger и mod_perl
 
Sw325 lekts 1
Sw325 lekts 1Sw325 lekts 1
Sw325 lekts 1
 
REPL в Node.js: улучшаем быт разработчик
REPL в Node.js: улучшаем быт разработчикREPL в Node.js: улучшаем быт разработчик
REPL в Node.js: улучшаем быт разработчик
 
Терминология как основной способ поиска разработчиков или как не опозорится п...
Терминология как основной способ поиска разработчиков или как не опозорится п...Терминология как основной способ поиска разработчиков или как не опозорится п...
Терминология как основной способ поиска разработчиков или как не опозорится п...
 
32 подводных камня OpenMP при программировании на Си++
32 подводных камня OpenMP при программировании на Си++32 подводных камня OpenMP при программировании на Си++
32 подводных камня OpenMP при программировании на Си++
 
Как и зачем можно создать DSL на Python
Как и зачем можно создать DSL на PythonКак и зачем можно создать DSL на Python
Как и зачем можно создать DSL на Python
 
DBD lection 1. Intro in Database Design. In Russian.
DBD lection 1. Intro in Database Design. In Russian.DBD lection 1. Intro in Database Design. In Russian.
DBD lection 1. Intro in Database Design. In Russian.
 
Programming Concepts
Programming ConceptsProgramming Concepts
Programming Concepts
 
массивы Php
массивы Phpмассивы Php
массивы Php
 
Компьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingКомпьютерная графика. Введение в Processing
Компьютерная графика. Введение в Processing
 
Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей. Программирование как способ выражения мыслей.
Программирование как способ выражения мыслей.
 
терминология vol.2
терминология vol.2терминология vol.2
терминология vol.2
 
C++ теория
C++ теорияC++ теория
C++ теория
 
C++ теория
C++ теорияC++ теория
C++ теория
 
C++ теория
C++ теорияC++ теория
C++ теория
 

Mais de Rauan Ibraikhan

Портфолио Асильбеков К.Т.
Портфолио Асильбеков К.Т.Портфолио Асильбеков К.Т.
Портфолио Асильбеков К.Т.Rauan Ibraikhan
 
Тәрбие жоспары
Тәрбие жоспарыТәрбие жоспары
Тәрбие жоспарыRauan Ibraikhan
 
Топ жетекшісінің міндеттері
Топ жетекшісінің міндеттеріТоп жетекшісінің міндеттері
Топ жетекшісінің міндеттеріRauan Ibraikhan
 
Ата аналарға арналған сауалнама
Ата  аналарға арналған сауалнама  Ата  аналарға арналған сауалнама
Ата аналарға арналған сауалнама Rauan Ibraikhan
 
Ата аналармен жұмыс
Ата аналармен жұмысАта аналармен жұмыс
Ата аналармен жұмысRauan Ibraikhan
 
Сіз қандай ата анасыз сауалнама
Сіз қандай ата анасыз сауалнамаСіз қандай ата анасыз сауалнама
Сіз қандай ата анасыз сауалнамаRauan Ibraikhan
 
Топ мәдениеті туралы
Топ мәдениеті туралыТоп мәдениеті туралы
Топ мәдениеті туралыRauan Ibraikhan
 
П4В тобы туралы мәлімет
П4В тобы туралы мәліметП4В тобы туралы мәлімет
П4В тобы туралы мәліметRauan Ibraikhan
 
Практикум Web программирование
Практикум Web программированиеПрактикум Web программирование
Практикум Web программированиеRauan Ibraikhan
 
Мастер класс Teamviewer шығару
Мастер класс   Teamviewer шығаруМастер класс   Teamviewer шығару
Мастер класс Teamviewer шығаруRauan Ibraikhan
 
Лекции и задания по рнр
Лекции и задания по рнрЛекции и задания по рнр
Лекции и задания по рнрRauan Ibraikhan
 
Лабораторные практические работы
Лабораторные практические работыЛабораторные практические работы
Лабораторные практические работыRauan Ibraikhan
 
Методичка Prezi шығару
Методичка Prezi шығаруМетодичка Prezi шығару
Методичка Prezi шығаруRauan Ibraikhan
 
Наурыз тәрби сағ
Наурыз тәрби сағНаурыз тәрби сағ
Наурыз тәрби сағRauan Ibraikhan
 
Бакытты отбасы
Бакытты отбасыБакытты отбасы
Бакытты отбасыRauan Ibraikhan
 
Ұятты қыз, намысты ұл болу –өнеге
Ұятты қыз, намысты ұл болу –өнегеҰятты қыз, намысты ұл болу –өнеге
Ұятты қыз, намысты ұл болу –өнегеRauan Ibraikhan
 
Мәдениетке деген құндылықты қарам қатынасты орнату
Мәдениетке деген құндылықты қарам қатынасты орнатуМәдениетке деген құндылықты қарам қатынасты орнату
Мәдениетке деген құндылықты қарам қатынасты орнатуRauan Ibraikhan
 
Ұстаз ұлы есім
Ұстаз ұлы есімҰстаз ұлы есім
Ұстаз ұлы есімRauan Ibraikhan
 

Mais de Rauan Ibraikhan (20)

Портфолио Асильбеков К.Т.
Портфолио Асильбеков К.Т.Портфолио Асильбеков К.Т.
Портфолио Асильбеков К.Т.
 
Тәрбие жоспары
Тәрбие жоспарыТәрбие жоспары
Тәрбие жоспары
 
Топ жетекшісінің міндеттері
Топ жетекшісінің міндеттеріТоп жетекшісінің міндеттері
Топ жетекшісінің міндеттері
 
Ата аналарға арналған сауалнама
Ата  аналарға арналған сауалнама  Ата  аналарға арналған сауалнама
Ата аналарға арналған сауалнама
 
Ата аналармен жұмыс
Ата аналармен жұмысАта аналармен жұмыс
Ата аналармен жұмыс
 
Сіз қандай ата анасыз сауалнама
Сіз қандай ата анасыз сауалнамаСіз қандай ата анасыз сауалнама
Сіз қандай ата анасыз сауалнама
 
Топ мәдениеті туралы
Топ мәдениеті туралыТоп мәдениеті туралы
Топ мәдениеті туралы
 
Анкета
АнкетаАнкета
Анкета
 
П4В тобы туралы мәлімет
П4В тобы туралы мәліметП4В тобы туралы мәлімет
П4В тобы туралы мәлімет
 
Практикум Web программирование
Практикум Web программированиеПрактикум Web программирование
Практикум Web программирование
 
Мастер класс Teamviewer шығару
Мастер класс   Teamviewer шығаруМастер класс   Teamviewer шығару
Мастер класс Teamviewer шығару
 
Лекции и задания по рнр
Лекции и задания по рнрЛекции и задания по рнр
Лекции и задания по рнр
 
Лабораторные практические работы
Лабораторные практические работыЛабораторные практические работы
Лабораторные практические работы
 
Методичка Prezi шығару
Методичка Prezi шығаруМетодичка Prezi шығару
Методичка Prezi шығару
 
Оқу құралы
Оқу құралыОқу құралы
Оқу құралы
 
Наурыз тәрби сағ
Наурыз тәрби сағНаурыз тәрби сағ
Наурыз тәрби сағ
 
Бакытты отбасы
Бакытты отбасыБакытты отбасы
Бакытты отбасы
 
Ұятты қыз, намысты ұл болу –өнеге
Ұятты қыз, намысты ұл болу –өнегеҰятты қыз, намысты ұл болу –өнеге
Ұятты қыз, намысты ұл болу –өнеге
 
Мәдениетке деген құндылықты қарам қатынасты орнату
Мәдениетке деген құндылықты қарам қатынасты орнатуМәдениетке деген құндылықты қарам қатынасты орнату
Мәдениетке деген құндылықты қарам қатынасты орнату
 
Ұстаз ұлы есім
Ұстаз ұлы есімҰстаз ұлы есім
Ұстаз ұлы есім
 

Сборник практических задании по Php

  • 1. МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ КАЗАХСТАН ГККП «Алматинский государственный политехнический колледж» Управления образования города Алматы Основы программирования на PHP (практические примеры) Алматы 2016
  • 2. 2 Рецензент: Бердибаева С. Д. – преподаватель спецдисциплин высшей категории. Основы программирования на PHP (практические примеры) – Алматы, 2016 – 69с. Данный сборник содержит практические примеры решения разнообразных задач при программировании на PHP. В данном сборнике рассматриваются следующие вопросы: синтаксис языка, строки и управляющие структуры, массивы и регулярные выражения, функции; описываются приемы отладки ваших сценариев. Каждая задача снабжена проработанным решением, содержащим небольшой фрагмент кода, который можно вставлять прямо в приложение. Этот сборник является вспомогательным материалом в изучении WEB-программирования и предназначен для преподавателей и студентов колледжа.
  • 3. 3 Содержание Введение 6 Практическая работа №1 Введение в php 8 Практическая работа №2 Особенности php 9 Практическая работа №3 Комментарии в php 9 Практическая работа №4 Вывод данных в php 10 Практическая работа №5 Переменные 11 Практическая работа №6 Типы данных 12 Практическая работа №7 Heredoc-синтаксис 15 Практическая работа №8 Экранирование переменных 16 Практическая работа №9 Доступ к символу в строке 17 Практическая работа №10 Арифметические операторы 18 Практическая работа №11 Оператор присваивания 19 Практическая работа №12 Логические операторы 20 Практическая работа №13 Операторы сравнения 21 Практическая работа №14 Конструкции if, else и elseif 21 Практическая работа №15 Конструкция switch-case 25 Практическая работа №16 Операторы инкремента и декремента 26 Практическая работа №17 Цикл while 27 Практическая работа №18 Цикл do-while 29 Практическая работа №19 Цикл for 30 Практическая работа №20 Тип данных массивы 32 Практическая работа №21 Смотрим структуру массива 35 Практическая работа №22 Цикл foreach 36 Практическая работа №23 Основы про функции 38 Практическая работа №24 Область видимости переменной 41 Практическая работа №25 Возврат значения функции с помощью return 44 Практическая работа №26 Функция is_array для работы с переменными 46 Практическая работа №27 Функция is_bool для работы с переменными 46 Практическая работа №28 Функция is_integer для работы с переменными 47 Практическая работа №29 Функция is_float для работы с 48
  • 4. 4 переменными Практическая работа №30 Функция is_null для работы с переменными 48 Практическая работа №31 Функция is_string для работы с переменными 49 Практическая работа №32 Функция is_scalar для работы с переменными 49 Практическая работа №33 Функция is_numeric для работы с переменными 50 Практическая работа №34 Функция gettype для работы с переменными 51 Практическая работа №35 Функция settype для работы с переменными 51 Практическая работа №36 Функция unset для работы с переменными 52 Практическая работа №37 Функция var_dump 53 Практическая работа №38 Функция var_export, аналогична уже рассмотренной функции var_dump 54 Практическая работа №39 Математическая функция abs - модуль числа 54 Практическая работа №40 Математические функции rad2deg и deg2rad конвертирования градусов в радианы и наоборот 55 Практическая работа №41 Математические функции косинуса и синуса (cos и sin) 55 Практическая работа №42 Все остальные математические функции 55 Практическая работа №43 Функция explode - разбиваем строку с помощью разделителя 57 Практическая работа №44 Функция implode - объединяем элементы массива в строку 59 Практическая работа №45 Функция htmlspecialchars - преобразуем специальные символы в HTML-сущности 59 Практическая работа №46 Функция htmlentities - Преобразуем все возможные символы в соответствующие HTML-сущности 61 Практическая работа №47 Функция html_entity_decode - преобразуем все HTML-сущности в соответствующие символы. 63
  • 5. 5 Практическая работа №48 Функция ltrim - удаляем пробелы из начала строки 64 Практическая работа №49 Функция rtrim - удаляем пробелы из конца строки 65 Практическая работа №50 Функция trim - удаляем пробелы из начала и конца строки 66 Практическая работа №51 Функция addslashes - экранирует спецсимволы в строке 67 Практическая работа №52 Функция strip_tags - удаляет HTML и PHP тэги 68 Перечень использованной литературы 69
  • 6. 6 Введение Язык PHP был создан Расмусом Лердорфом (Rasmus Lerdorf) осенью 1994 года исключительно в личных целях – Расмус хотел вести статистику посещаемости своего сайта (аббревиатура PHP расшифровывалась как Personal Home Page). Средствами HTML это было реализовать невозможно, а другие инструменты для решения этой задачи по каким-то причинам Расмуса не удовлетворяли, поэтому он создал свое простое и удобное средство. Он и не думал о том, что его идея может оказаться интересной еще кому-либо. Но люди, которые использовали для хостинга своих сайтов тот же сервер, что и Расмус, заинтересовались этой простой и удобной оболочкой. Автор пошел им навстречу, так в 1995 году появилась первая общедоступная версия PHP. На тот момент PHP обладал весьма скромными возможностями, но уже к середине 1995 года он научился принимать данные HTML-форм и работать с базами данных. С тех пор PHP все время совершенствовался, и на сегодняшний день представляет собой удобный инструмент для создания динамических HTML-страниц. Изменилось и значение аббревиатуры: теперь PHP рекурсивно расшифровывается как PHP: Hypertext Preprocessor (PHP – гипертекстовый препроцессор). Что нужно, чтобы начать? Для полноценной работы с PHP на Вашем компьютере нужны следующие вещи: 1. Веб-сервер Apache (он используется в большинстве случаев); 2. Система Управления Базами Данных (СУБД) MySQL (в базе данных хранится наполнение сайта); 3. Установленный интерпретатор PHP; 4. Текстовый редактор, в котором Вы будете писать код; 5. Браузер. Подробнее о первых трех пунктах. 1. Веб-сервер предназначен для имитации на Вашем компьютере того самого сервера, на котором потом будет размещаться Ваш сайт уже на хостинге в Интернет. Это нужно для того, чтобы у себя на компьютере Вы могли писать любые PHP- скрипты и смотреть, как они работают, вносить в них изменения и
  • 7. 7 правки. Одним словом, это необходимо для так называемой отладки. 2. СУБД MySQL нужна для хранения информации, которая будет на Вашем сайте. В случае с HTML-страницами все содержимое сайта находится непосредственно в них. Каждая страница содержит определенный объем информации (контента). При использовании PHP для целей хранения полезного информационного наполнения сайта используется, как правило, база данных. В подавляющем большинстве случаев это MySQL. 3. Интерпретатор PHP - это своеобразная программа, которая осуществляет обработку PHP-кода на веб-сервере. Без него мы никак не сможем выполнить наши PHP-скрипты и увидеть результат их работы.
  • 8. 8 Практическая работа №1 Введение в php Для начала обучения нам необходимо установить локальный сервер. Создаете папку php в Z:homelocalhostwww (Буква Z означает имя диска. Может отличаться. ) 1. В папке php создайте файл echo.php . Где “echo” название, а php расширение. Если у Вас операционная система XP, перезагрузите сервер. Нажав на ярлык рестарт. В папке php будут располагаться все уроки. Php- код начинается с спец. символов <?php ?> или <? ?>. Эти символы говорят серверу, что всё что внутри данного блока это php. Выглядит это так: 1. 2.<?php 3.Какой-то код 4.?> Также приемлема запись: 1. 2.<? 3.Какой-то код 4.?> Php блок может быть не закрытым. Например: 1. 2.<?php 3.Какой-то код Где это используется мы будем рассматривать в следующих уроках. Рекомендуемая запись: 1. 2.<?php 3.Какой-то код 4.?> У php, как у любого языка есть параметры, которые можно изменять. Все параметры находятся в файле php.ini. Сам же файл вы найдете по пути Z:usrlocalphp5 (Буква Zозначает имя диска. Может отличаться.) Настройки php можно получить в удобной таблицы. Для этого создадим в папке php файл info.php и напишем наш первый код: 1. 2.<?php 3.phpinfo(); 4.?>
  • 9. 9 Практическая работа №2 Особенности php PHP это язык C,С++ подобный. Отличительные особенности: каждая инструкция (выражение) заканчивается точкой с запятой. Выражение; Допускается одно “выражение” записывать в несколько строк. PHP будет выполнять код, пока не найдет точку с запятой. 1. 2.<?php 3.Код 4.Код 5.Код; 6.?> В одной строке можно располагать несколько выражений: 1.<php 2.Выражение1; Выражение2; 3.?> Практическая работа №3 Комментарии в php Комментарии один из важных моментов в разработки вообще. Классическая схема это 30% комментариев от основного года. Нет ничего ужаснее чем читать чужой код, где нет не одного комментария. Комментарии в php делятся на: 1. Однострочные 2. Многострочные Однострочный комментарий обозначаются # или // . Привычнее видеть запись c таким комментарием - // 1.<?php 2.// Однострочный комментарий 3.phpinfo(); 4.?> Многострочные обозначаются - /* */ . Применяться для комментирования большого куска кода. 1.<?php 2./* 3.Многострочный комментарий 4.Много строк 5.Много! 6.*/ 7.phpinfo();
  • 10. 10 8.?> Практическая работа №4 Вывод данных в php Вывод данных осуществляется по принципу PHP -> Сервер - >Браузер. Существует две главных функции print и echo. Нельзя сказать, что это функции, так как функции это немного другое. Это конструкции языка. Но сделаем такое пренебрежение в разговоре. 1.<?php 2.print ("Вывод текста через print"); 3.echo "Вывод текста через echo"; 4.?> В первом уроке мы создали файл echo.php . Откройте его и напишите следующий код: 1.<h1> 2.<?php 3.echo "Заголовок"; 4.?> 5.</h1> Выдастся белый экран с надписью “Заголовок”. Отсюда моно сделать вывод, что php код можно вставлять в html теги страницы. Данный код можно записать по-другому: 1.<?php 2.echo "<h1>Заголовок</h1>"; 3.?> Первый и второй вариант одинаковые для вывода данных. Можно укоротить запись таким образом: 1.<h1> 2.<?=" Заголовок ";?> 3.</h1> Это будет абсолютно тоже самое. Рассмотрим внимательнее спец. cимволы php echo можно заменить на = 1.<h1> 2.<?php echo "Текст"?> 3.</h1> 4.//Тоже самое! 5.<h1> 6.<?="Текст"?> 7.</h1>
  • 11. 11 Практическая работа №5 Переменные В РНР переменные начинаются со знака доллара ($). За этим знаком может следовать любое количество буквенно-цифровых символов и символов подчеркивания, но первый символ не может быть цифрой. Переменным присваиваются, какие либо значения. Присваиваются значком = 1.<?php 2.$name = 'Владимир'; 3.?> Следует также помнить, что имена переменных в РНР чувствительны к регистру!!! Пример: 1.<?php 2.$last_name = 'Первое'; 3.$last_Name = 'Второе'; 4.//Выведем переменные на экран через echo 5.echo $last_name.'<br>'; // выведет - Первое 6.echo $last_Name; // выведет – Второе 7.// $last_name и $last_Name разные переменные!!!! 8.?> Переменные взаимозатераемые. Например, если в переменной лежало одно значение, при повторном присваивание значение изменится, начиная со строки присваивания!!! Пример: 1.<?php 2.$name = 'Ивану'; 3.echo $name; // выведет - Иван 4.$name = 'Влад'; 5.echo $name; // выведет - Влад 6.?> Переменные можно удалять. Удаление происходит с помощью функции unset. Пример: 1.<?php 2.$name = 'Ивану'; 3.unset($name); //Удалили переменную 4.echo $name; // Ничего не выдаст 5.?>
  • 12. 12 Переменные можно стыковать. Стыковка происходит с помощью точки. Пример: Выведем на экран – Ивану-25 лет. Возьмем в переменные “Иван” и “25” 1.<?php 2.$name = 'Ивану'; 3.$age = '25'; 4.echo $name.'-'.$age.' лет'; // Ивану-25 лет 5.?> Можно записать по-другому переменную $age Пример: $age = 25; Выдаст тоже самое, но только мы положили в переменную не слово, а число!!! Практическая работа №6 Типы данных PHP предоставляет определенную гибкость в отношении типов переменных, то есть с одной и той же переменной на протяжении программы можно работать и как со строкой, и как с числом. Однако, несмотря на это в РНР существуют набор основных типов данных, которые могут явно указываться при работе с переменными: Четыре скалярных типа: 1. integer; (Целые числа) 2. string; (Строки) 3. boolean; (Двоичные данные (Истина или Ложно)) 4. float; (Число с плавающей точкой) Два смешанных типа: 1. array; (Массивы) 2. object; (Объекты) Два специальных типа: 1. NULL; (Пустой тип) 2. Resource; (Ресурсы) Есть функция gettype(), возвращающая тип, который РНР назначил переменной: 1.<?php 2.$var1= '5'; 3.$var2 = 5; 4.echo gettype($var1) // string 5.. '<br>' 6.. gettype($var2); // integer 7.?>
  • 13. 13 В первом случае РНР вернет string, во втором integer. Напоминаю из предыдущей работы, что операция «.» (точка) используется для склеивания (конкатенации) строк. Существует также функция settype(), которая явно устанавливает тип: 1.<?php 2.$var = '5'; // Тип string 3.settype($var, 'integer'); 4.echo '<br>' 5.. gettype($var); // Перевели в тип integer 6.?> Кроме функции settype() преобразование типов в РНР можно осуществлять при помощи операторов преобразования типов. Преобразование типов осуществляется путем указания перед переменной ее нового типа, взятого в скобки: 1.<?php 2.$var = (int)$var; 3.?> 4. Соответственно, выполнение следующего кода приведет к тому, что РНР вернет integer: 1.<?php 2.$var = '5'; // тип string 3.$var = (int)$var; // преобразуем в int 4.echo gettype($var); 5.?> Тип: boolean Простейший тип. Выражает истинность значения – это может быть либо TRUE, либо FALSE . 1.<?php 2.$foo = True; // присвоить переменной $foo значение истина 3.?> TRUE и FALSE – регистро-независимы!!! В отличие от переменных!!! Посмотрите и потренируйтесь переводить один тип данных в другой. Например если переменная равна true, то в типы integer она будет 1. Если false, то 0. Тип: integer ии float Я думаю Вам все понятно сразу, число оно и в Африке число. 01.<?php 02.$int = 1234; // Десятичное число 03.$int = -123; // Отрицательное число
  • 14. 14 04.$int = 0123; // 8-ное число 05.$int = 0x1A; // 16-ное число 06.// Числа с плавающей точкой 07.$flt = 1.234; 08.$flt = 1.2e3; 09.$flt = 7E-10; 10.?> Тип: string В основном мы гоняем в php строки. Поэтому строки это основной можно сказать тип. Строки можно в одинарные кавычки помешать: 1.<?php 2.$user = 'Владимир'; 3.echo 'Я '.$user.' ушел курить'; 4.?> А можно и в двойные: 1.<?php 2.$user = "Владимир"; 3.echo "Я ".$user." ушел курить"; 4.?> И разница в этом есть!!! Давайте разбираться в чем. 1)В двойные кавычки можно помещать переменные и они будут работать, а в одинарные нет! Перепишем выше пример и уберем кавычки и стыковки у переменной. 1.<?php 2.$user = "Владимир"; 3.echo "Я $user ушел курить"; 4.?> В одинарных кавычках такой код работать не будет!!! Можете попробовать. 2)Внутри двойных кавычек можно использовать специальные символы. И вот несколько из них: n – новая строка r – возврат каретки t – горизонтальная табуляция – обратная косая черта $ – знак доллара " – двойная кавычка Пример использования: 1.<?php 2.$user = "Владимир"; 3.echo "Я $user n ушел курить"; 4.?>
  • 15. 15 Но в браузере вы изменений не увидите, а вот в исходном коде страницы перенос будет!!! Показываться будет, например, если Вы хотите в двойных кавычках еще двойные кавычки. Пример: 1.<?php 2.$user = "Владимир"; 3.echo "Я "$user" ушел курить"; 4.?> Практическая работа №7 Heredoc-синтаксис Еще один из важных способ использования строк это heredoc- синтаксис – используется с помощью синтаксиса документов ("<<<"). После <<< укажите метку(идентификатор), затем строку, а затем ту же самую метку, чтобы закрыть "кавычки". Пример: 1.<?php 2.echo <<<METKA - без пробелов в конце, и только англ. символы. 3.код 4.METKA; - без пробелов 5.// Работать не будет! 6.?> Закрывающая метка должна начинаться в первом столбце строки. Кроме того, метка должна удовлетворять правилам именования, как и любая метка в PHP: он должен содержать только алфавитно-цифровые символы и подчеркивания и не должен начинаться с цифры или подчеркивания. Такой текст ведет себя как строка в двойных кавычках, но без двойных кавычек. Это означает, что Вам не придется кодировать кавычки с помощью слеша, но использовать коды со слешем все равно можно. Переменные раскрываются, но следует проявлять осторожность при выражении сложных переменных в таких строках. Наизусть выучить: 1. Строка с открывающим идентификатором (меткой) не содержит после никаких других символов, включая пробел!!! Следите, чтобы не было пробелов. А то ничего работать не будет. 2. Закрывающий идентификатор (метка) должен начинаться с первой позиции строки.
  • 16. 16 3. Строка с закрывающим идентификатором (меткой) не содержит других символов (включая пробелы), за исключением точки с запятой. Пример нормального использования: 1.<?php 2.$user = "Вова"; 3.echo <<<AAA 4.<p>$user пошел в "Виват" за пивом.</p> 5.AAA; 6.?> Можно присваивать переменным. Пример: 1.<?php 2.$user = "Вова"; 3.$text= <<<AAA 4.<p>$user пошел в "Виват" за пивом.</p> 5.AAA; 6.echo $text; 7.?> Практическая работа №8 Экранирование переменных Работа о “Экранирование переменных”. Например у нас есть переменная: 1.<?php 2.$beer = 'Heineken'; 3.?> И нам надо в двойных кавычках вывести на экран: Heinekens taste is great Заметьте что у название пива стоит “s” в конце. Как быть? Как вывести? А вывести очень просто. Надо использовать спец символы { }. Пример: 1.<?php 2.$beer = 'Heineken'; 3.echo "${beer}s taste is great"; 4.?> Можно записать по-другому. 1.<?php 2.$beer = 'Heineken'; 3.echo "{$beer}s taste is great"; 4.?>
  • 17. 17 Практическая работа №9 Доступ к символу в строке Разберем как получать символы. Например, нам надо в слове “Привет” взять первый символ. Делается это следующим образом. Пишется имя переменой, а в фигурных скобках указываться позиция нужного символа. Позиции начинаются с нуля. П – 0 Р – 1 И – 2 В – 3 Е – 4 Т – 5 В коде будет выглядеть так: 1.<?php 2.$str = 'Привет'; 3.// Получение первого символа 4.$first = $str{0}; 5.// Вывод первого символа 6.echo $first; // П 7.?> А вот для получение последнего символа, нам понадобиться функция strlen. Данная функция считает длину строки. 1.<?php 2.$str = 'Привет'; 3.// Cчитаем длину строки 4.$len = strlen($str); 5.// Выводим значение 6.echo $len; // 6 7.?> Длина слова “Привет” составляет 6 слов. А позиции у нас начинаются с нуля, поэтому нам надо вычесть 1 для получение последнего символа. Пример кода: 01.<?php 02.$str = 'Привет'; 03.// Cчитаем длину строки 04.$len = strlen($str); 05.$pos = $len - 1; // 6-1=5 06.// Получение последнего символа строки 07.$last = $str{$pos}; 08.echo $last; 09.?> Привыкайте укорачивать записи. Иначе читаю чужой код, Вы нечего не поймете. Пример нормальной записи:
  • 18. 18 1.<?php 2.$str = 'Привет'; 3.// Получение последнего символа строки 4.$last = $str{strlen($str)-1}; 5.echo $last; 6.?> Практическая работа №10 Арифметические операторы Вспоминайте школьные основы арифметики. Описанные ниже операторы PHP работают таким же образом!!! 1.<?php 2.$a = 20; 3.$b = 10; 4.$c = 2; 5.$res = $a+$b+$c; // 20+10+2 6.echo $res; // 32 7.?> Операция деления ("/") всегда возвращает вещественный тип, даже если оба значения были целочисленными (или строками, которые преобразуются в целые числа). В противном случае результат будет дробным. 1.<?php 2.$a = 20; 3.$b = 10; 4.$c = 2; 5.$res = $a+$b/$c; 6.echo $res; // 25 7.?> Возможно использование скобок. Приоритет одних математических операций над другими и изменение приоритетов при использовании скобок в арифметических выражениях соответствуют обычным математическим правилам. 1.<?php 2.$a = 20; 3.$b = 10; 4.$c = 2; 5.$res = ($a+$b)/$c; // (20+10) / 2 6.echo $res; // 15 7.?>
  • 19. 19 Практическая работа №11 Оператор присваивания Базовый оператор присвоения обозначается как “=” это вы помните из предыдущих уроков. Примеры возможного присваивания: 1.<?php 2.$a = ($b = 3) + 1; // переменной $b присвоено 3, a переменной $a присвоено 4 3.echo $b; // 3 4.// Перенос строки 5.echo '</br>'; 6.echo $a; // 4 7.?> В дополнение к базовому оператору присвоения имеются "комбинированные операторы" для всех бинарных арифметических и строковых операций, которые позволяют использовать некоторое значение в выражении, а затем установить его как результат данного выражения. Например: 1.<?php 2.$a = 3; 3.$a = $a + 5; // 3+5=8 4.echo $a; // 8 5.?> Укорачиваем запись: 1.<?php 2.$a = 3; 3.$a += 5; // 3+5=8 4.echo $a; // 8 5.?> Пример по строкам. Есть такая запись: 1.<?php 2.$a = 'Мне '; 3.$b = $a.'25 лет'; 4.echo $b; 5.?> Можно записать так: 1.<?php 2.$a = 'Мне '; 3.$a .='25 лет'; 4.echo $a; 5.?> Присваивание по ссылке. Очень часто используется в Joomla да и в других CMS. Пример: 1.<?php
  • 20. 20 2.$a = 5; 3.$b = &$a; // $b - это ссылка на $a 4.echo $b; 5.?> Вроде бы это тоже самое что $a=$b; Но нет. Смотрим пример: 1.<?php 2.$a = 5; 3.$b = $a +5 ; 4.echo $b; // 10 5.?> Получаем 10. 1.<?php 2.$a = 5; 3.$b = &$a +5; // $b - это ссылка на $a 4.echo $b; // 5!!!! 5.?> Практическая работа №12 Логические операторы Логические операторы предназначены исключительно для работы с логическими выражениями и возвращают false или true. (Истина или Ложь). Оператор не чувствителен к регистру. Можно писать как заглавные так и строчные символы. Для удобство всё выведено в таблицу, Вам остается выучить или держать всегда под рукой. Как видно из таблицы имееться дубль операторов : аnd - && or - || Смысл двух разных вариантов для операторов "and" и "or" в том, что они работают с различными приоритетами. "||" имеет больший приоритет, чем "or" "&&" имеет больший приоритет, чем "and"
  • 21. 21 Практическая работа №13 Операторы сравнения Операторы сравнения позволяют сравнивать два значения между собой и, если условие выполнено, возвращают true, а если нет — false. ( Истина или ложь) Практическая работа №14 Конструкции if, else и elseif Конструкции if, else, elseif относятся к условным оператором. Условные операторы, пожалуй, наиболее распространенные конструкции во всех языках программирования. Конструкция if. 1.<?php 2.if (условие){ 3.Инструкция 1; 4.Инструкция 2; 5.} 6.?> Условие может быть любое. Если условие принимает значение TRUE (Истину), PHP выполнит инструкцию, а если оно принимает значение FALSE (Ложь) - проигнорирует. Пример: 1.<?php 2.$a = 10; 3.$b = 5; 4.if ($a > $b){ 5.echo 'Переменная А больше Б'; 6.} 7.?> Усложним код:
  • 22. 22 01.<?php 02.$a = 10; 03.$b = 5; 04.$c = 2; 05.if ($a > $b and $c < $a) { 06.echo 'Истина'; 07.$d = $a + $b; // 10+5=15 08.echo '</br>'.$d; // 15 09.} 10.?> Еще раз усложним: 01.<?php 02.$a = 10; 03.$b = 5; 04.$c = 2; 05.if ($a + $b > $c and $c < $a) { 06.echo 'Истина'; 07.$d = $a + $b; // 10+5=15 08.echo '</br>'.$d; // 15 09.} 10.?> Как видно из примера, в условие можно помешать всё что угодно. Лишь бы это было условие. Конструкция else 1.<?php 2.if (условие){ 3.Инструкция 1; 4.} else { 5.Инструкция 2; 6.} 7.?> Сразу перейдем к примерам: 01.<?php 02.$a = 10; 03.$b = 5; 04.if ($a == $b) { 05.echo 'Истина'; 06.} else { 07.echo 'Ложь'; 08.} 09.?> Конструкция elseif - это комбинация конструкций if и else. Эта конструкция расширяет условную конструкцию if-else. Практический пример использования конструкции elseif:
  • 23. 23 01.<?php 02.$a = 10; 03.$b = 10; 04.if ($a > $b) { 05.echo "a больше, чем b"; 06.} elseif ($a == $b) { 07.echo "a равен b"; 08.} else { 09.echo "a меньше, чем b"; 10.} 11.?> Очень часто встречается альтернативный синтаксис. В Joomla почти везде. 1.<?php 2.$a = 10; 3.if ($a == 10): ?> 4.<h1> A равно 10 </h1> 5.<?php endif; ?> Альтернативный синтаксис также применяется и к else и elseif. 01.<?php 02.$a = 5; 03.if ($a == 5): 04.echo "a равно 5"; 05.echo "..."; 06.elseif ($a == 6): 07.echo "a равно 6"; 08.echo "!!!"; 09.else: 10.echo "a не равно ни 5 ни 6"; 11.endif; 12.?> Существует сверх укороченная запись, давайте рассмотрим синтаксис укороченного использования: 1. 2.Условие ? Инструкция 1 : Инструкция 2; 3. Пример кода, который будем укорачивать: 01.<?php 02.$my = true; 03.if ($my) { 04.echo 'Переменная истина'; 05.} else { 06.echo 'Ложь'; 07.}
  • 24. 24 08. 09.?> Пример укороченного кода: 1.<?php 2.$my = true; 3.echo $my ? 'Переменная истина' : 'Ложь'; 4.?> Практическая работа №15 Конструкция switch-case Часто вместо нескольких расположенных подряд инструкций if-else целесообразно воспользоваться специальной конструкцией выбора switch-case. Раcсмотрим пример на elseif. 01.<?php 02.$d = 2; 03.if ($d == 1) 04.print(" 1 "); 05.elseif ($d == 2) 06.print(" 2 "); 07.elseif ($d == 3) 08.print(" 3 "); 09.elseif ($d == 4) 10.print(" 4 "); 11.?> Данный пример выведет значение при совпадение условия, но перебор всех сравнений будет идти пока не закончиться конструкция. Логичнее было бы закончить выполнение кода, сразу как условие выполниться. Конструкция switch-case как раз такой логикой и обладает. Рассмотрим синтаксис конструкции switch-case: 01.<?php 02.switch (Переменная/Выражение){ 03.case Значение 1: 04.Операторы 1; 05.[break;] 06.case Значение 2: 07.Операторы 2; 08.[break;] 09.[default: Оператор] 10.} 11.?> Наш пример будет в конструкции switch-case выглядеть следующем образом:
  • 25. 25 01.<?php 02.$d = 2; 03.switch ($d) { 04.case 1: 05.print(" 1 "); 06.break; 07.case 2: 08.print(" 2 "); 09.break; 10.case 3: 11.print(" 3 "); 12.break; 13.case 4: 14.print(" 4 "); 15.break; 16.} 17.?> break; - означает выйти из конструкции. То есть если переменная совпала, то сразу закончить выполнение конструкции. Очень интересно ведет себя конструкция, если убрать break; 01.<?php 02.$d = 2; 03.switch ($d) { 04.case 1: 05.print(" 1 "); 06.case 2: 07.print(" 2 "); 08.case 3: 09.print(" 3 "); 10.case 4: 11.print(" 4 "); 12.} 13.?> Конструкция начинает работать по принципу: Увидел совпадение в case, и выполняю всё что есть, не смотря наследующие case!!! В итоге выдаст на экран - 2 3 4 Если Вы посмотрите еще раз вверх на пример синтаксиса конструкции. То увидите - default: Оператор. Данные строчки выполняются при условии, что не одно выражение не совпало с case. Пример: 01.<?php 02.$d = 100; 03.switch ($d) {
  • 26. 26 04.case 1: 05.print(" 1 "); 06.break; 07.case 2: 08.print(" 2 "); 09.break; 10.case 3: 11.print(" 3 "); 12.break; 13.case 4: 14.print(" 4 "); 15.break; 16.default: print(" Переменная не совпала с case. Вывелось значение по умолчанию. "); 17.} 18.?> Так же как у конструкции “if и elseif” есть альтернативный синтаксис, который часто используется. Вот пример его: 01.<?php 02.$x=3; 03.switch ($x): 04.case 0: 05.echo "x=0"; 06.break; 07.case 1: 08.echo "x=1"; 09.break; 10.case 2: 11.echo "x=2"; 12.break; 13.default: 14.echo "x не равен 0, 1 или 2"; 15.endswitch; 16.?> В нем нет ”{ }” для определение начала, а используется “ :” А для конца - endswitch; Практическая работа №16 Операторы инкремента и декремента Аналогично многим языкам программирования в PHP есть “Операторы инкремента и декремента”. Это операторы которые увеличивают или уменьшают числовое значение на 1. Их всего 4 штуки. Для удобство выведены в таблицу:
  • 27. 27 Для того чтобы понять как они работаю, рассмотрим каждый по порядку. Смотрим таблицу и подставляем, что должно вывести на экран. Постфиксный инкремент: 1.<?php 2.$a = 5; 3.echo "Должно быть 5 - Вывело: " . $a++ . "</br>"; 4.echo "Должно быть 6 - Вывело: " . $a . "</br>"; 5.?> Префиксный инкремент: 1.<?php 2.$a = 5; 3.echo "Должно быть 6 - Вывело: " . ++$a . "</br>"; 4.echo "Должно быть 6 - Вывело: " . $a . "</br>"; 5.?> Постфиксный декремент: 1.<?php 2.$a = 5; 3.echo "Должно быть 5 - Вывело: " . $a-- . "</br>"; 4.echo "Должно быть 4 - Вывело: " . $a . "</br>"; 5.?> Префиксный декремент: 1.<?php 2.$a = 5; 3.echo "Должно быть 4 - Вывело: " . --$a . "</br>"; 4.echo "Должно быть 4 - Вывело: " . $a . "</br>"; 5.?> Практическая работа №17 Цикл while Циклы позволяют повторять определенное количество раз различные операторы. Данные операторы называются телом цикла. Одно выполнение цикла называется итерацией. Цикл while являются простейшим видом циклов в PHP. Цикл while работает по следующей схеме: 1. Вычисляется значение логического выражения.
  • 28. 28 2. Если значение истинно, выполняется тело цикла, в противном случае - переходим на следующий за циклом оператор.( Это и есть итерация) Синтаксис цикла: 1.<?php 2.while (логическое_выражение) { 3.инструкция; 4.} 5.?> Живой пример работы цикла: 1.<?php 2.$a = 0; 3.while ( $a<=5 ) { 4.$a++; // Увеличиваем значение на 1 5.echo $a.'</br>'; // 1 2 3 4 5 6 6.} 7.?> В данном примере как раз применяются “Операторы инкремента и декремента”, которые мы рассматривали на прошлом уроке. Код выведет на экран все цифры начиная с 1 до 6. Откуда взялась единица, если $a = 0; ? И откуда взялась 6, если стоит условие $a<=5 ? На самом деле все просто. Вывод переменной происходит в теле цикла. А в теле цикла у нас стоит постфиксный инкремент. Следовательно, в теле цикла переменная $а=0; увеличилась на 1. Цикл выполняется до тех пор пока в условии цикла ИСТИНА (true). Бойтесь бесконечных циклов. Простой пример такого цикла представлен ниже. Максимум что у Вас будет, это повиснет браузер, так как старица будет вечно загружаться до тех пор, пока php не просчитает цикл. А он этого никогда не сделает, так как цикл бесконечный! 1.<?php 2.$a = 0; 3.while ( $a<5 ) { 4.echo $a.'</br>'; // Повиснет браузер 5.} 6.?> В данном пример условие цикла всегда true (Истина). Следовательно, число итераций будет бесконечное. Напомню еще раз, цикл выполняется до тех пор, пока условие ИСТИНА.
  • 29. 29 У цикла while тоже есть альтернативный синтаксис: 1.<?php 2.$i = 0; 3.while ($i <= 5): 4.$i++; 5.echo $i.'</br>'; // 1 2 3 4 5 6 6.endwhile; 7.?> Практическая работа №18 Цикл do-while В отличие от цикла while, который мы рассматривали на предыдущем уроке, цикл do-while проверяет значение выражения не до, а после каждого прохода (итерации). Таким образом, итерация выполняется хотя бы один раз!!! Синтаксис цикла do-while: 1.<?php 2.do { 3.тело_цикла; 4.} 5.while (логическое_выражение); 6.?> Пример использования: 1.<?php 2.$x = 1; 3.do { 4.echo $x.'</br>'; 5.} while ( $x++ < 5 ); 6.?> Выведет цифры от 1 до 5. Теперь разберем пример. В логическое выражение поставим не true, а false. 1.<?php 2.$x = 1; 3.do { 4.echo $x.'</br>'; // Выведет 1 5.} while ( $x++ < 0 ); 6.?>
  • 30. 30 Практическая работа №19 Цикл for Цикл for самый популярный и в тоже время самый сложный цикл в PHP. Синтаксис цикла for : 1.<?php 2.for (инициализирующие команды; условие цикла; команды после итерации) { 3.тело цикла; 4.} 5.?> Самое интересное, что стоит в круглых скобках: 1. Инициализирующие команды - В основном задание счетчика. Данные команды выполняются только один раз! 2. Условие цикла – аналог if, проверяет условие на true или false. Если TRUE цикл выполняется. 3. Команды после итерации – команды выполняются до тех пор, пока условие TRUE. В основном увеличение счетчика. По-сути это три части, которые разделяются точкой с запятой. В этих частях можно писать бесконечное число команд. Пример работы цикла for: 1.<?php 2.for ($x=0; $x<10; $x++) { 3.echo $x.'<br/>'; // 0123456789 4.} 5.?>  Инициализирующая команда – Задание счетчика. $x=0;  Условие выполнение цикла – Пока переменная не больше 10. $x<10;  Команда после каждой итерации – Увеличение счетчика на 1. $x++ Более сложный пример: Задача вывести на экран переменную $a от 0 до 5 и переменную $b от 0 до 9 . В теле цикла надо будет выполнить еще одну проверку, поскольку счетчик будет увеличиваться и переменной $a будут присваиваться значения. 1.<?php 2.for ($a=0, $b = 0; $a <5 OR $b<10 ; $a++, $b++) { 3.if ($a <=5 ) { 4.echo 'Переменная a - '.$a.'<br/>'; 5.}
  • 31. 31 6.echo 'Переменная b - '.$b.'<br/>'; // 7.} 8.?> Очень важный момент, как видно из примера команды разделяться запятыми. Для наглядности я сделал два условие в части "Условие цикла". Можно обойтись одним: 1.<?php 2.for ($a=0, $b = 0; $a <5 OR $b<10 ; $a++, $b++) { 3.if ($a <=5 ) { 4.echo 'Переменная a - '.$a.'</br>'; 5.} 6.echo 'Переменная b - '.$b.'</br>'; // 7.} 8.?> А цикла есть альтернативный синтаксис: 1.<?php 2.for(инициализирующие команды; условие цикла; команды после итерации): 3.тело цикла; 4.endfor; 5.?> Простой пример: 1.<?php 2.for($x=0; $x < 5; $x++): 3.echo $x.'<br/>'; 4.endfor; 5.?> Если цикл простой, можно укорачивать его до 2 частей: 1.<?php 2.for($x=0; ++$x < 5;): 3.echo $x.'<br/>'; 4.endfor; 5.?> Опять же бойтесь бесконечных циклов. Вот пример такого: 1.<?php 2.for($x=0; ; $x ++ ) { 3.echo $x.'<br/>'; 4.} 5.?> Почему цикл получился бесконечный? Если посмотреть в часть условие цикла, то там пусто. А цикл for по-умолчанию всегда TRUE!!! Цикл можно прервать с помощью условного оператора break;
  • 32. 32 Давайте решим неординарную задачу. Создадим бесконечный цикл, но при достижение определенного значение цикл заканчивается. Пример решения: 1.<?php 2.$cont = 20; 3.for($x=0; ; $x ++ ) { 4.if ($x > $cont) {break;} 5.echo $x.'<br/>'; 6.} 7.?> Практическая работа №20 Тип данных массивы В этой практической работе мы разберем тип данных – Массивы. По простому, массивы это холодильник, где имеются полочки и на каждой полочке лежат продукты. Синтаксис массива: 1. 2.$имя[индекс]; 3. Где Имя – это имя массива. А в квадратных скобочках его индекс. Например, имя играет роль холодильника, а индекс играет роль продукта. Если индекс числовое значение, то такой массив называется простой массив, а если буквенный, то ассоциативный массив. Посмотрим пример простого массива: 01.<?php 02. 03.// Здесь: names - имя массива, а 0, 1, 2, 3 - индексы массива 04.$names[0]="Апельсин"; 05.$names[1]="Банан"; 06.$names[2]="Груша"; 07.$names[3]="Помидор"; 08. 09.// Вывод элемента массива names с индексом 0 10.echo $names[0]; 11. 12.?> В примере, names - имя массива, а 0, 1, 2, 3 - индексы массива. Индексы могут быть в любом разбросе. Например:
  • 33. 33 01.<?php 02. 03.// Здесь: names - имя массива, а 0, 1, 2, 3 - индексы массива 04.$names[100]="Апельсин"; 05.$names[5]="Банан"; 06.$names[300]="Груша"; 07.$names[150]="Помидор"; 08. 09.// Вывод элемента массива names с индексом 300 10.echo $names[300]; 11. 12.?> Если индексы не проставлять, то они начинаются с нуля!!! 01.<?php 02.$names[]="Апельсин"; // индекс 0 03.$names[]="Банан";// индекс 1 04.$names[]="Груша";// индекс 2 05.$names[]="Помидор";// индекс 3 06. 07.// Вывод элемента массива names с индексом 3 08.echo $names[3]; 09. 10.?> Это надо запомнить, что если не установлен индекс, то он начинается с нуля! Для работы с массивами есть специальная функция Array(). Синтаксис функции Array(); 1.<?php 2.$arr = Array('key0'=>'val0' , 'key1'=>'val1'); // Определяем массив 3.echo $arr['key0']; // Обращение к элементу с ключом key. Выведет val0 4.?> Запишем выше пример, используя эту функцию: 1.<?php 2.$names = Array( 0=>'Апельсин', 1=>'Банан', 2=>'Груша', 3=>'Помидор'); 3.echo $names[0]; 4.?> Можно укоротить запись опустив индексы: 1.<?php 2.$names = Array('Апельсин','Банан', 'Груша', 'Помидор');
  • 34. 34 3.echo $names[0]; 4.?> Индексы начинаются с нуля. Поэтому нулевому индексу соответствует – Апельсин. Теперь рассмотрим пример ассоциативного массива: 1.<?php 2.$names["Иванов"]="Иван"; 3.$names["Сидоров"]="Николай"; 4.$names["Петров"]="Петр"; 5.// фамилии - это ключи ассоциативного массива, а имена - элементы массива names 6. 7.echo $names["Иванов"]; 8.?> Ассоциативные массивы особенно удобны в ситуациях, когда элементы массива удобнее связывать со словами, а не с числами. Всё что мы рассматривали это были одномерные массивы. Но массивы бывают и многомерными. То есть они содержат несколько ключей и несколько индексов. Пример такого массива: 01.<?php 02.// Многомерный простой массив: 03.$names[0][0]="Овощи"; 04.$names[0][1]="Фрукты"; 05.$names[1][0]="Абрикос"; 06.$names[1][1]="Апельсин"; 07.$names[1][2]="Банан"; 08.$names[2][0]="Огурец"; 09.$names[2][1]="Помидор"; 10.$names[2][2]="Тыква"; 11. 12.echo $names[0][1]; 13.?> Для лучшего понимания, лучше использовать многомерные ассоциативные массивы и специальную функцию Array(); которую мы рассмотрели выше. Пример: 1.<?php 2.// Многомерный массив 3.$A["Ivanov"] = array("name"=>"Иванов И.И.", "age"=>"25", "email"=>"ivanov[@]mail.ru"); 4.$A["Petrov"] = array("name"=>"Петров П.П.", "age"=>"34", "email"=>"petrov[@]mail.ru"); 5.$A["Sidorov"] = array("name"=>"Сидоров С.С.", "age"=>"47", "email"=>"sidorov[@]mail.ru");
  • 35. 35 6. 7.echo $A["Ivanov"]["name"]; 8.?> Практическая работа №21 Смотрим структуру массива Очень часто в массив, данные приходят через переменные, которые тянуться из базы данных. Возникает вопрос, как посмотреть весь массив сразу? Давайте решим данную задачу. Допустим есть массив: 1.<?php 2.$names[]="Апельсин"; 3.$names[]="Банан"; 4.$names[]="Груша"; 5.$names[]="Помидор"; 6.?> Надо показать всю его структуру. Для этого есть функция print_r. Она как раз и выводит пригодную для чтения человеком информацию о переменной. Если задан тип string, integer или float, печатается само значение. Если задан тип array(массив), значения будут представлены в формате с показом ключей и элементов массива. Пример использования функции print_r: 01.<?php 02.$names[]="Апельсин"; 03.$names[]="Банан"; 04.$names[]="Груша"; 05.$names[]="Помидор"; 06. 07.echo '<pre>'; 08.print_r($names); 09.echo '</pre>'; 10.?> Выдаст: 1.Array 2.( 3.[0] => Апельсин 4.[1] => Банан 5.[2] => Груша 6.[3] => Помидор 7.)
  • 36. 36 Для общего сведения. По-сути вывод похож на синтаксис функций Array(); Нам остается только расставить запятые и кавычки. Функцию Array(); мы рассматривали на прошлом уроке. Пример: 01.<?php 02.$names = Array 03.( 04.'0' => 'Апельсин', 05.'1' => 'Банан', 06.'2' => 'Груша', 07.'3' => 'Помидор' 08.); 09.echo $names['0']; 10.?> 11. Практическая работа №22 Цикл foreach Конструкция foreach предоставляет простой способ перебора массивов. Цикл работает только с массивами и объектами, и будет генерировать ошибку при попытке использования с переменными других типов или неинициализированными переменными. Синтаксис цикла foreach: 1. 2.<?php 3.foreach (массив as $ключ=>$значение) { 4.команды; 5.} 6.?> 7. Здесь команды циклически выполняются для каждого элемента массива, при этом очередная пара ключ=>значение оказывается в переменных $ключ и $значение. Пример работы цикла foreach: 01. 02.<?php 03.$names = Array 04.( 05.'0' => 'Апельсин', 06.'1' => 'Банан', 07.'2' => 'Груша', 08.'3' => 'Помидор' 09.);
  • 37. 37 10.foreach ($names as $key => $value) { 11.echo '<p>значение - '.$value.' , а ключ (индекс) '.$key.'</p>'; 12.} 13.?> 14. Выдаст:  значение - Апельсин , а ключ (индекс) 0  значение - Банан , а ключ (индекс) 1  значение - Груша , а ключ (индекс) 2  значение - Помидор , а ключ (индекс) 3 У цикла foreach имеется и укороченная форма записи, которую следует применять, когда нас не интересует значение ключа очередного элемента. Синтаксис: 1. 2.<?php 3.foreach (массив as $значение) { 4.команды; 5.} 6.?> 7. Пример использования синтаксиса: 01. 02.<?php 03.$names = Array 04.( 05.'0' => 'Апельсин', 06.'1' => 'Банан', 07.'2' => 'Груша', 08.'3' => 'Помидор' 09.); 10.foreach ($names as $value) { 11.echo '<p>Значение - '.$value.'</p>'; 12.} 13.?> 14.
  • 38. 38 Практическая работа №23 Основы про функции Функция – программный блок, который может многократно выполняться в любом месте сценария. Название функции регистронезависимое. Синтаксис: 1.<?php 2.function ИмяФункции (аргумент1[=значение1], …, аргументN[=значениеN]) { 3.команды; 4.(Или вложенная функция); 5.} 6.?> Синтаксис вызова функции: 1.<?php 2.ИмяФункции (аргумент1[=значение1], …, аргументN[=значениеN]); 3.?> Функцию можно вызывать бесконечное количество раз! Простой пример: 01.<?php 02.// Описание функции 03.function sayHello(){ 04.echo "Hello, world!"; 05.} 06. 07.// Вызов функции 08.sayHello(); // Hello, world! 09.sayHello(); // 2 раз 10.?> Функцию нельзя декларировать более одного раза. То есть двух одинаковых названий функций быть не может. В самом php встроенных функций несколько тысяч. Поэтому, когда пишете свои функции, называйте их уникально и понятно. Давайте теперь передадим какой-нибудь параметр. То есть если посмотреть выше на синтаксис функции. То в круглых скобочках как раз таки и передаются параметры функции. Пример: 01.<?php 02.// Описание функции 03.function sayHello($name){ 04.echo 'Привет - '.$name; 05.}
  • 39. 39 06. 07.// Вызов функции 08.sayHello('Вова'); 09.?> В данном примере мы передали функции что переменная $name равна “Вова”. Можно в вызове функции использовать переменные, а не сразу значение переменной. Точнее нужно :-) Пример: 01.<?php 02.// Описание функции 03.function sayHello($name){ 04.echo 'Привет - '.$name; 05.} 06. 07.// Вызов функции 08. 09.$my_name = 'Дима'; 10.sayHello($my_name); 11. 12.?> Есть и третий вариант. Он редко используется, но знать о нем надо. 01.<?php 02.// Описание функции 03.function sayHello($name){ 04.echo 'Привет - '.$name; 05.} 06. 07.// Вызов функции 08. 09.$my_name = 'Дима'; 10.$str = 'sayHello'; 11.$str($my_name); 12.?> В данном примере имя функции засунуто в переменную. И уже эта переменная ведет себя как функция! Почему так получается? Когда php доходит до символов $str( Он понимает что от него требуется вызвать функцию, Следовательно он идет к этой переменной и смотрит что там. А там название функции. Он ищет в коде функцию с этим названием и вызывает ее. Это очень важный момент его надо просто понять.
  • 40. 40 Еще один важный момент. Количество параметр передаваемых может быть неограниченное число. А разделаются они запятыми. Пример: 01.<?php 02.// Описание функции 03.function sayHello($hello,$name){ 04.echo $hello.' - '.$name; 05.} 06. 07.// Вызов функции 08. 09.$my_name = 'Дима'; 10.$my_hello = 'Привет'; 11.sayHello($my_hello,$my_name); 12.?> В данном примере передается два параметра. А что будет? Если я в выводе вместо : 1.<php 2.sayHello($my_hello,$my_name); 3.// Привет - Дима 4.?> Напишу : 1.<php 2.sayHello($my_name, $my_hello); 3.?> А будет “Дима – Привет”. Почему так происходит? А потому что передача в функцию осуществляется по порядку!!! Еще один важный момент!!! Что будет, если мы вдруг не передадим параметр функции? Пример такого кода: 01.<?php 02.// Описание функции 03.function sayHello($name){ 04.echo 'Привет - '.$name; 05.} 06. 07.// Вызов функции 08.sayHello(); 09.?> А получу я ошибку: 1. 2.Warning: Missing argument 1 for sayHello() 3.
  • 41. 41 Нам php говорит, мол нет аргумента. Как быть? Живой пример. У нас например, система приветствия на сайте. И нам должно по логике вещей, если эта не зарегистрированный пользователь показать надпись “Привет Гость”. Для этих целей есть такая штука как параметр по умолчанию. Задается он в круглых скобках самой функции. Пример правильной записи: 01.<?php 02.// Описание функции 03.function sayHello($name='Гость'){ 04.echo 'Привет - '.$name; 05.} 06. 07.// Вызов функции 08.sayHello(); // Привет - Гость 09.?> В данном пример мы не передали аргумент , но выставили аргумент по умолчанию: Давайте теперь передадим: 01.<?php 02.// Описание функции 03.function sayHello($name='Гость'){ 04.echo 'Привет - '.$name; 05.} 06. 07.// Вызов функции 08.$user = 'Вова'; 09.sayHello($user); 10.?> Практическая работа №24 Область видимости переменной В php существует две области видимости. Локальная и глобальная. Пример кода: 01.<?php 02.$gl = 'глобальная переменная'; 03.function sayHello () { 04.$loc = 'локальная переменная'; 05.echo 'Привет я функция – в локальной области видимости и я '.$loc.'<br/>'; 06.} 07.sayHello(); 08.// Глобальная переменная
  • 42. 42 09.echo 'Привет – Я в глобальной области видимости и я '.$gl.'<br/>'; 10.//Локальная переменная 11.echo 'Привет – Я в глобальной области видимости и я '.$loc.'<br/>'; 12.?> Все что входит в глобальную видимость кода это вот: 01.<?php 02.$gl = 'глобальная переменная'; 03.function sayHello ( // Именно так! 04.sayHello(); 05.// Глобальная переменная 06.echo 'Привет – Я в глобальной области видимости и я '.$gl.'<br/>'; 07.//Локальная переменная 08.echo 'Привет – Я в глобальной области видимости и я '.$loc.'<br/>'; 09.?> Все остальное, что осталось от исходного кода, это локальная область видимости. Следовательно, переменная $gl – это глобальная переменная, а переменная $loc – это локальная переменная. Переменные объявленные в локальной области видимости, не видны в глобальной! Следовательно, при выводе через оператор echo переменную $loc – он не вывел! Вообще, когда php идет по коду, он не видит что находиться в function , до тех пор, пока ее не вызвали! Поэтому все переменные, объявленные в функции, дальше функции не уйдут. Когда php выполнит функцию, он удалит все существующие переменные в функции. И они не будут доступны не из функции. Возникает вопрос, как же сделать так, чтобы переменная объявленная в функции (или в локальной области видимости) была доступны в глобальной области видимости? Есть решение этой задачи. И решений таких, всего два. Первое: Объявить переменную в функции с помощью ключевого слова global. Вот как это выглядит в коде: 01.<?php 02.$gl = 'глобальная переменная'; 03.function sayHello () { 04.global $loc; // Объявляем что она глобальная. 05.$loc = 'Теперь я глобальная переменная.';
  • 43. 43 06.echo 'Привет я функция – в локальной области видимости и я '.$loc.'<br/>'; 07.} 08.sayHello(); 09.// Глобальная переменная 10.echo 'Привет – Я в глобальной области видимости и я '.$gl.'<br/>'; 11.//Локальная переменная 12.echo 'Привет – Я в глобальной области видимости и я '.$loc.'<br/>'; 13.?> Теперь переменная $loc глобальная и следовательно она выводиться через оператор echo! Рассмотрим второй вариант. Но чтобы его рассмотреть, надо сначала разобраться в устройстве php. Значит смотрите, когда мы создаем переменную и присваиваем ей значение: 1. 2.$age = 25; 3. А php делает это по-другому. У него есть свой массив $GLOBALS[] в котором хранятся все переменные. Когда мы пишем вот так вот: $age = 25; PHP на самом деле делает вот так: 1. 2.$GLOBALS['age'] = 25; 3. Создадим функцию, которая складывает две переменных, но не выводит результата. А выводит результат мы будем из локальной области видимости в глобальную через echo. 01.<?php 02.$a = 1; 03.$b = 2; 04.function Sum(){ 05.global $a, $b; 06.$b = $a + $b; 07.} 08.Sum(); 09.echo $b; //Выведет 3 10.?> Заменим global: 01.<?php 02.$a = 1; 03.$b = 2; 04.function Sum(){
  • 44. 44 05.$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"]; 06.} 07.Sum(); 08.echo $b; //Выведет 3 09.?> Ответ тот же самый! Следовательно, способ работает. Помимо локальных и глобальных переменных, существует еще один тип – статические переменные. Если в теле пользовательской функции объявлена статическая переменная, то компилятор не будет ее удалять после завершения работы этой функции. Допустим есть функция: 01.<?php 02.function Test() { 03.$a = 0; 04.echo $a++; 05.} 06.Test(); // 0 07.Test(); // 0 08.Test(); // 0 09.?> Почему выдается ноль ? Опять же, всё что находиться в функции не сохраняется! Но чтобы работало, нам необходимо сделать переменную статической. Объявив ее ключевым словом static и задав ей какое-то значение! 01.<?php 02.function Test() { 03.static $a = 0; 04.echo $a++; 05.} 06.Test(); // 0 07.Test(); // 1 08.Test(); // 2 09.?> Уже выводит, как и должно. 0 1 2 и тд в зависимости от количества вызова функции. Практическая работа №25 Возврат значения функции с помощью return В 90 процентов при работе с функциями необходимо, чтобы функция не выдавала какой-то результат сразу, а просто отработала
  • 45. 45 и например хранила результат своей работы в переменной или мы могли в любой момент ее вызвать в каком либо куске кода. Для этих целей существует конструкция return. Она возврат значения в функции. Пример: 1.<?php 2.function mySum($n1,$n2) { 3.$res = $n1+$n2; 4.return $res; 5.} 6.$result = mySum(2,3); 7.echo $result; // 5 8.?> В данном примере мы вернули результат работы функции в переменную. Можно упростить запись заменив: 1.$res = $n1+$n2; 2.return $res; На: 1.return $n1+$n2; Если нам надо просто вывести результат работы функции и работать с ней далее. Тогда заменим: 1.$result = mySum(2,3); 2.echo $result; На: 1.echo mySum(2,3); Помимо всего выражение return() немедленно прекращает выполнение текущей функции и возвращает свой аргумент как значение данной функции. Пример кода: view source print? 1.<?php 2.function mySum($n1,$n2) { 3.return $n1+$n2; 4.echo 'Я не сработаю, так как до меня стоит return'; 5.} 6.echo mySum(2,3); 7.?>
  • 46. 46 Практическая работа №26 Функция is_array для работы с переменными Существует много различных функций для работы с переменными. Частично мы их разберем в следующих 10 уроков. Первая из таких - функция is_array - она определяет, является ли данная переменная массивом. Работает просто, возвращает TRUE, если переменная является массивом array, или FALSE в противном случае. Создадим массив и проверим работу функции. 01.<?php 02.$my_array = array('Значение 1', 'Значение 2'); 03. 04.if (is_array($my_array)) { 05.echo 'Массив'; 06.} else { 07.echo 'Не массив'; 08.} 09.?> Выдаст – Массив. Теперь подставим в функцию не массив. 1.<?php 2.$no_array = 'это строка'; 3.if (is_array($no_array)) { 4.echo 'Массив'; 5.} else { 6.echo 'Не массив'; 7.} 8.?> Как Вы уже догадались, должно вывести - Не массив. Мы кстати не использовали укороченные записи if-else. Давайте перепишем данный кусок кода: 1.<?php 2.$my_array = array('Значение 1', 'Значение 2'); 3.echo is_array($my_array) ? 'Массив' : 'Не массив'; 4.?> Практическая работа №27 Функция is_bool для работы с переменными Функция is_bool - определяет, является ли данная переменна булевой(boolean). Работает просто, возвращает TRUE, если переменная является типом boolean, или соответственно FALSE. Проверим работу функции:
  • 47. 47 1.<?php 2.$my_bool = true; 3.echo is_bool($my_bool) ? 'Да, это булевая переменная' : 'Нет, это не булевая переменная'; 4.?> Выведет – “Да, это булевая переменная”. Рассмотрим еще один пример, только теперь переменная будет равна FALSE: 1.<?php 2.$my_bool = false; 3.echo is_bool($my_bool) ? 'Да, это булевая переменная' : 'Нет, это не булевая переменная'; 4.?> Выведет – “Да, это булевая переменная”. Почему ? Напомню Вам что функция определяет являться ли переменная boolean типом. А тип boolean это TRUE и FALSE. (регистронезависимые) Следовательно, если мы например подставим число: 1.<?php 2.$my_bool = 5; 3.echo is_bool($my_bool) ? 'Да, это булевая переменная' : 'Нет, это не булевая переменная'; 4.?> Практическая работа №28 Функция is_integer для работы с переменными Функция is_integer она же is_int - определяет, является ли переменная целочисленного типа. Работает просто, возвращает TRUE, если переменная является целочисленной, FALSE – если это не так. Проверим работу функции: 1.<?php 2.$my_int = 5; 3.echo is_int($my_int) ? 'Да, переменная является целочисленной' : 'Нет'; 4.?> Изменим переменную на нецелое число: 1.<?php 2.$my_int = 5.2; 3.echo is_int($my_int) ? 'Да, переменная является целочисленной' : 'Нет'; 4.?>
  • 48. 48 Функция сказала это не целочисленная переменная и поэтому вывела – “нет” Занесем число в кавычки: 1.<?php 2.$my_int = '5'; 3.echo is_int($my_int) ? 'Да, переменная является целочисленной' : 'Нет'; 4.?> Практическая работа №29 Функция is_float для работы с переменными Функция is_float - проверяет, является ли переменная числом с плавающей точкой. Возвращает TRUE, если переменная является переменной типа float, FALSE в противном случае. Проверим работу функции: 1.<?php 2.$a = 5.2; 3.echo is_float($a) ? 'Да, переменная является переменной типа float' : 'Нет'; 4.?> Вывело – Да. Изменим переменную на целое число: 1.<?php 2.$a = 5; 3.echo is_float($a) ? 'Да, переменная является переменной типа float' : 'Нет'; 4.?> Практическая работа №30 Функция is_null для работы с переменными Функция is_null - Проверяет, является ли значение переменной равным NULL. Возвращает TRUE, если переменная равна null, или FALSE в противном случае. Проверим работу функции: 1.<?php 2.$a = null; 3.echo is_null($a) ? 'Да' : 'Нет'; 4.?>
  • 49. 49 Подставим например строку: 1.<?php 2.$a = 'null'; // строка 3.echo is_null($a) ? 'Да' : 'Нет'; 4.?> Практическая работа №31 Функция is_string для работы с переменными Функция is_string - проверяет, является ли переменная строкой. Возвращает TRUE, если переменная является строкой, или FALSE в противном случае. Так как мы в основном гоняем туда- сюда строки, то эту функцию Вы должны знать наизусть. Проверим работу функции: 1.<?php 2.$a = 'text'; 3.echo is_string($a) ? 'Да, строка' : 'Нет, не строка'; 4.?> Подставим число: 1.<?php 2.$a = 5; 3.echo is_string($a) ? 'Да, строка' : 'Нет, не строка'; 4.?> Выведет – Нет, так как это не строка. А вот если мы 5 в кавычки поставим, то будет строка! Практическая работа №32 Функция is_scalar для работы с переменными Функция is_scalar - проверяет, является ли переменная скалярным значением. Возвращает TRUE, если переменная является скалярным значением, или FALSE в противном случае. Скалярные переменные - это переменные с типами integer, float, string и boolean. Типы array, object и resource не являются скалярными. Проверим работу функции: 1.<?php 2.$a = 5; 3.echo is_scalar($a) ? 'Да' : 'Нет'; 4.?> Подставим массив: 1.<?php
  • 50. 50 2.$a = array(' Значение1',' Значение2'); 3.echo is_scalar($a) ? 'Да' : 'Нет'; 4.?> Практическая работа №33 Функция is_numeric для работы с переменными Функция is_numeric - проверяет, является ли переменная числом или строкой, содержащей число. Возвращает TRUE, если var является числом или строкой, содержащей число, в противном случае возвращается FALSE. Ну для начало разберемся, что означает в данной функции понятие – “строка содержащие число”. Пример: 1.<?php 2.$a = 5; // Число 3.?> Переменная $a = числу. Пример со строкой: 1.<?php 2.$a = '5'; 3.?> В данном случаи переменная $a = строка, но содержащие число. Кстати мы уже несколько уроков не работали с массивами. Исправим это, и следующий пример будет с массивом. 01.<?php 02.$tests = array( 03."42", 04."строка + число - 4", 05.1337, 06."1e4", 07."просто строка", 08.array(), 09.9.1 10.); 11. 12.foreach ($tests as $element) { 13.if (is_numeric($element)) { 14.echo "$element - число<br/>"; 15.} else { 16.echo "$element - НЕ число<br/>"; 17.} 18.} 19.?>
  • 51. 51 Выдаст: 1.42 - число 2.строка + число - 4 - НЕ число 3.1337 - число 4.1e4 - число 5.просто строка - НЕ число 6.Array - НЕ число 7.9.1 - число Практическая работа №34 Функция gettype для работы с переменными Функция gettype - возвращает тип PHP-переменной. С данной функцией мы уже знакомились в уроке “ Типы данных ”. Но как говориться: ,,Повторение - мать учение!” Ну или как-то там так. Пример работы функции: 1.<?php 2.$a = '5'; 3.$b = 5; 4.echo gettype($a).'<br/>'; 5.echo gettype($b); 6.?> Выдаст: 1.Строка (string) 2.Число (integer) Практическая работа №35 Функция settype для работы с переменными Функция settype - присваивает переменной новый тип. До этого мы только определяли тип, а теперь мы его будем менять. Синтаксис функции: 1. 2.settype(переменная, "новый тип"); 3. Давайте изменим тип строка на число. Пример: 01.<?php 02.$a = '5'; 03.//определили тип и вывели 04.echo gettype($a).'<br/>'; 05.//изменили тип 06.settype($a, "integer"); 07.echo gettype($a).'<br/>';
  • 52. 52 08.echo $a; 09.?> Вывело: 1.string 2.integer 3.5 В данном примере мы в качестве переменной использовали число в кавычках, а что будет, если мы простую строку подставим и изменим тип. Пример: 01.<?php 02.$a = 'test'; 03.//определили тип и вывели 04.echo gettype($a).'<br/>'; 05.//изменили тип 06.settype($a, "integer"); 07.echo gettype($a).'<br/>'; 08.echo $a; 09.?> Вывело: 1.string 2.integer 3.0 Практическая работа №36 Функция unset для работы с переменными Функция unset – удаляет переменную из той области видимости, где используется данная функция. Напомню областей всего две: глобальная область видимости и локальная область видимости. Области видимости мы уже проходили в уроке “Область видимости переменной”. Кто его не понял, читаем еще раз. Пример работы функции: 1.<?php 2.$a = 'test'; 3.echo 'До удаления - '.$a.'<br/>'; 4.unset($a); 5.echo 'После удаления - '.$a.'<br/>'; 6.?> Переменная была удаленна из глобальной области видимости. Теперь рассмотрим пример, в котором мы будет удалять ее в локальной области видимости.
  • 53. 53 01.<?php 02.function test($a) { 03.echo 'До удаления, в локальной области видимости - '.$a.'<br/>'; 04.unset($a); 05.echo 'После удаления, , в локальной области видимости - '.$a.'<br/>'; 06.} 07.$a = 'test'; 08.echo test($a); 09.echo 'В глобальной области видимости - '.$a; 10.?> Практическая работа №37 Функция var_dump Функция var_dump - отображает структурированную информацию об одном или нескольких выражениях, включая их тип и значение. Массивы и объекты анализируются рекурсивно с разным отступом у значений для визуального отображения структуры. Всё для людей в этой функции. 1.<?php 2.$a = array(1, 2, array("a", "b", "c")); 3.echo '<pre>'; 4.var_dump($a); 5.echo '</pre>'; 6.?> Выведет на экран, полную структуру массива с индексами, типами данных и сами данные. 01.array(3) { 02.[0]=> 03.int(1) 04.[1]=> 05.int(2) 06.[2]=> 07.array(3) { 08.[0]=> 09.string(1) "a" 10.[1]=> 11.string(1) "b" 12.[2]=> 13.string(1) "c" 14.} 15.}
  • 54. 54 Практическая работа №38 Функция var_export, аналогична уже рассмотренной функции var_dump Функция var_export - функция аналогична уже рассмотренной функции var_dump() за одним исключением: возвращаемое представление является полноценным PHP кодом! 1.<?php 2.$a = array(1, 2, array("a", "b", "c")); 3.echo '<pre>'; 4.var_export($a); 5.echo '</pre>'; 6.?> Нам вывелся полноценный php код всего массива: 01.array ( 02.0 => 1, 03.1 => 2, 04.2 => 05.array ( 06.0 => 'a', 07.1 => 'b', 08.2 => 'c', 09.), 10.) Практическая работа №39 Математическая функция abs - модуль числа Функция abs – модуль числа. Очень часто, нам необходимо, в каких либо расчетах, чтобы число было всегда положительное. Для этого как раз и существует данная функция. Функция сама по себе очень простая. Пример работы функции: 1.<?php 2.// Модуль -4.2 = 4.2 3.echo $a = abs(-4.2).'<br/>'; // Тип float! 4.// Модуль 5 = 5 5.echo $a = abs(5).'<br/>'; 6.// Модуль -5 = 5 7.echo $a = abs(-5).'<br/>'; 8.?> Если переменная имеет тип float, возвращаемое значение также будет иметь тип float, по умолчанию - integer!
  • 55. 55 Практическая работа №40 Математические функции rad2deg и deg2rad конвертирования градусов в радианы и наоборот Функции rad2deg и deg2rad. Задача конвертировать градусы в радианы и наоборот. Пример rad2deg - конвертирует количество радиан в эквивалентное количество градусов: 1.<?php 2.$a = 60; 3.echo rad2deg($a); 4.?> Пример deg2rad – наоборот конвертирует градусы в радианы: 1.<?php 2.$a = 60; 3.echo deg2rad($a); 4.?> Практическая работа №41 Математические функции косинуса и синуса (cos и sin) Функции sin и cos – возвращают синус или косинус переменной. Пример синуса: 1.<?php 2.$a = 60; 3.echo sin($a); 4.?> Пример косинуса: 1.<?php 2.$a = 60; 3.echo cos($a); 4.?> Практическая работа №42 Все остальные математические функции Ну все математические функции работают также, как и те функции, которые мы рассматривали ранее. Список всех математических функций: abs — Модуль числа acos — Арккосинус acosh — Гиперболический арккосинус
  • 56. 56 asin — Арксинус asinh — Гиперболический арксинус atan2 — Арктангенс двух переменных atan — Арктангенс atanh — Гиперболический арктангенс base_convert — Преобразование числа между произвольными системами счисления bindec — Двоичное в десятичное ceil — Округляет дробь в большую сторону cos — Косинус cosh — Гиперболический косинус decbin — Переводит число из десятичной системы счисления в двоичную dechex — Переводит число из десятичной системы счисления в шестнадцатиричную decoct — Переводит число из десятичной системы счисления в восьмеричную deg2rad — Преобразует значение из градусов в радианы exp — Вычисляет число e в степени expm1 — Возвращает exp(number) - 1, рассчитанное таким образом, что результат точен, даже если number близок к нулю. floor — Округляет дробь в меньшую сторону fmod — Возвращает дробный остаток от деления по модулю getrandmax — Вовзращает максимально возможное случайное число hexdec — Переводит число из шестнадцатиричной системы счисления в десятичную hypot — Рассчитывает длину гипотенузы прямоугольного треугольника is_finite — Проверяет, является ли значение допустимым конечным числом is_infinite — Проверяет, является ли значение бесконечным is_nan — Проверяет, является ли значение "не числом" lcg_value — Комбинированный линейно конгруэнтный генератор log10 — Десятичный логарифм log1p — Возвращает log(1 + number), рассчитанный таким, что результат точен, даже если значение number близко к нулю log — Натуральный логарифм
  • 57. 57 max — Возвращает наибольшее значение min — Находит наименьшее значение mt_getrandmax — Показывает максимально возможное значение случайного числа mt_rand — Генерирует случайное значение методом mt mt_srand — Переинициализирует генератор случайных чисел mt octdec — Переводит число из восьмеричной системы счисления в десятичную pi — Возвращает число Пи pow — Возведение в степень rad2deg — Преобразует значение из радианов в градусы rand — Генерирует случайное число round — Округляет число типа float sin — Синус sinh — Гиперболический синус sqrt — Квадратный корень srand — Изменяет начальное число генератора псевдослучайных чисел tan — Тангенс tanh — Гиперболический тангенс Практическая работа №43 Функция explode - разбиваем строку с помощью разделителя Функция explode - возвращает массив строк, полученных разбиением строки с помощью разделителя. Синтаксис функции: 1. 2.explode ( разделитель, входная строка, ($limit - необязательно)] ) 3. limit Если аргумент limit является положительным, возвращаемый массив будет содержать максимум limit элементов, при этом последний элемент будет содержать остаток строки string. Если параметр limit отрицателен, то будут возвращены все компоненты кроме последних -limit. Если limit равен нулю, то он расценивается как 1. Давайте разберем на примере. Допустим есть строка: 1.