Развитие языков программирования растёт с большой скоростью
Скачать 2.79 Mb.
|
HEREDOC; ?> А вот пример использования nowdoc: $label = <<<’NOWDOC’ И здесь также может быть наша строка или текст. NOWDOC; ?> Вопросы и упражнения для самоконтроля 1.Что такое комментарии в РНР? 2.Как можно создать переменную? 3.Что такое типы данных? 4.Создайте несколько переменных с числовым и текстовым типом данных. 5.Какие есть правила создания названия для переменной? 6.Какие операторы можно использовать для строк? 7.Назовите основные последовательности и для чего их можно использовать? 8.Напишите небольшую программу которая использовала бы последовательности. PHP: Junior Kit 21 2 Числа После ознакомления с одним типом данным можно переходить и к другому типу, то есть к числам. Синтаксис объявления чисел вы уже видели в первой главе. Числа в РНР могут иметь разные разряды, к примеру системой счисления которой мы каждый день пользуемся называется десятичной. То есть когда мы считаем от 1 к 9 и потом у нас идет 10. Это и можно назвать десятичной системой счисления. Есть также восьмеричная система счисления это когда мы считаем от 1 к 7 и после 7 у нас уже идет не 8 а 10. И потом если в восьмеричной системе будет считать от 10 к 17 то у нас потом будет идти 20 и т.д. О разрядах чисел есть написано много книг, в нашем случае в этой книге мы будем пользоваться только десяти разрядной системой счисления. Пример создания чисел: $pizza = 8493; $nothing = -445; // Отрицательное число ?> 2.1 Операторы для работы с числами Как и для строк так и для чисел существуют свои операторы для работы с ними. В таблице приведенной ниже показаны операторы которые можно использовать для работы с числами. Оператор Значение Результат +$a Идентичность Перевод числа в целое PHP: Junior Kit 22 число или число с плавающей точкой. -$a Отрицание Смена знака. $a+$b Сложение Сумма двух чисел. $a-$b Вычитание Разность двух чисел. $a*$b Умножение Произведение двух чисел. $a/$b Деление Остаток двух чисел. $a**$b Возведение в степень Возведение числа $a в степень числа $b. $a++ Инкрементация Увеличение числа на единицу. $a-- Декрементация Уменьшение числа на единицу. - Табл. 3 - Операторы для работы с числами в РНР На первый взгляд некоторым новичкам может казаться что такие операторы не будут нужны для создания какого-нибудь веб-приложения. Но по-настоящему они очень нужны, к примеру оператор инкрементации используется для того чтобы вывести определенное количество пользователей. Не надо сразу думать что если в РНР есть математические операторы то надо сразу начинать учить высшую математику или поступать в какой то математической университет. Нет, не надо так думать, чтобы программировать как я уже говорил знать математику необязательно. Внизу показан небольшой пример использования данных операторов: PHP: Junior Kit 23 echo 5 - 2; // * 3 echo 5 * 2; // * 10 echo 36 / 6; // * 6 echo 5 ** 2; // * 25 $a = 5; echo ++$a; // * 6 echo --$a; // * 4 ?> Использование математических операторов очень нужная вещь при создании очень динамического приложения, к примеру полноценной соц. сети и т.п. Рекомендую читателю по практиковаться с данными операторами и написать какую-нибудь простую программу. 2.2 Числа с плавающей точкой Помните школьной курс математики? Надеюсь вы вспомнили об таком виде чисел как числа с плавающей точкой. Это почти тоже самое что и простые числа только после того как мы указали нужное нам число мы ставим точку и продолжаем уже вводить не целое число а десятые, тысячные числа и т.д. Пример в PHP: $a = 56.985; $b = 6.02; $c = 3.4; echo $b + $c; ?> Использовать числа с плавающей точкой надо будет тогда к примеру если вам надо будет показать курс какой-нибудь крипто валюты или вывести какое-нибудь научное число. PHP: Junior Kit 24 Заключение В заключение можно сказать что данная глава вышла довольно таки короткой, но ясной и простой. Только не надо думать что мы уже не встретимся с числами в данной книге. В главе о функциях мы будем рассматривать функции которые можно использовать для того чтобы работать с числами. Сейчас я как и всегда попрошу читателя попрактиковаться с данным типом данных и ответить на вопросы которые показаны ниже. Вопросы и упражнения для самоконтроля 1.Как создаются целые числа в PHP? 2.Какие есть операторы для работы с числами? 3.Напишите программу которая использовала бы числа и операторы для чисел. 4.Как можно представить числа с плавающей точкой в РНР? PHP: Junior Kit 25 3 Логические операции Без логических операций веб-приложения не смогли бы просто существовать и сам язык программирования РНР также. Логические операции реализованы почти во всех языках программирования. Но что такое логическая операция? Думаю вы уже догадываетесь, но перед тем как начать разговор о понятии логической операции надо разобраться и понять что такое псевдокод. 3.1 Псевдокод Псевдокод- это так званный код который используется для того чтобы описать работу алгоритма с помощью нашего человеческого языка без использования каких то технических терминов и языка программирования. Пример простого алгоритма описанного на псевдокоде: Открыть коробку с пиццой; Взять специальный нож для пиццы; Разрезать пиццу на шесть частей; Положить нож на место; Съесть пиццу; Вообще использовать псевдокод хорошо когда к примеру надо описать работу какого-нибудь сложного алгоритма вместо того чтобы сразу писать алгоритм на языке программирования. Вообще псевдокод хорошо использовать для проектирования программы. Но давайте немного усложним использовав логическую операцию “ЕСЛИ”: Открыть коробку с пиццей; Если есть пицца тогда: Взять специальной нож для пиццы; Разрезать пиццу на 6 частей; Взять одну часть; Съесть пиццу; PHP: Junior Kit 26 Конец; Ну вот мы и усложнили наш пример использовав логическую операцию “ЕСЛИ”. Пример стал немного интереснее и сложнее. Это будет первая логическая с которой мы познакомимся. Если вы не очень поняли как именно работает данная логическая операция то вот ещё один пример: Если голоден тогда: Пойти на кухню; Поесть; … Конец; Логическая операция “ЕСЛИ” будет работать только тогда когда условие данной логической операции будет равно истине, то есть если посмотреть в нашем предыдущем примере то человек который будет выполнять данный алгоритм, то он пойдет на кухню только тогда когда он будет голоден. Если условие логической операции будет равно ложи а не истине то оно никогда не выполниться. 3.2 Логическая операция if Вы уже знаете как работает данная логическая операция(или ещё называют логической конструкцией) в псевдокоде, но теперь настало время попрактиковаться с этим в РНР. Сначала мы указываем имя логической операции, в нашем случае это будет логическая операция if, после этого указываем условие в круглых скобках и после чего мы открываем острые скобки и начинаем писать код который выполниться если условие логической операции будет равно истине. Вот как это выглядит на практике: 1) { echo “Условие равно истине”; // А все потому что 3 больше чем 1. PHP: Junior Kit 27 // И в конечном счёте это истина, // и именно это и будет истиной условия. } ?> В нашем условии мы указали что если 3 больше чем 1 то тогда вывести на экран заданный нами текст в команде echo. Чтобы сделать это условие мы использовали оператор > больше чем, есть также оператор < меньше чем, с операторами которые можно использовать для работы с логическими операциями мы познакомимся в следующей под главе. А что делать если нам надо написать код который выполнялся если бы логическая операция равнялась ложи? В таком случае можно использовать противоположность if то есть else что значит в переводе на русский - иначе. Пример работы данной логической операции на псевдокоде: Если голоден тогда: Пойти на кухню; … Иначе: Продолжать учиться; Конец; Использовать else можно к примеру в тех случаях если пользователь ввёл неправильные данные. Вот как это работает уже в самом языке программирования: 5) { echo “Эта часть кода никогда не выполниться поскольку условие равно ложи”; } else { echo “А эта часть кода выполниться”; } ?> PHP: Junior Kit 28 Рекомендую протестировать данный код чтобы вам было легче понять работу этой логической операции. Можете теперь дать волю своему творчеству и по пробовать написать какой-нибудь простой код с использованием данной логической операции. Но давайте представим ситуацию что у нас кроме того что нужно написать код который выполнялся если условие равно ложи, то нужно также написать код который выполнялся если бы условие было бы не равно истине и ложи. То есть как бы сказать нейтральное условие. Для этого в РНР была создана отдельная часть логической операции if которая называется else if. else if можно ставить столько раз в коде - сколько вам захочется, но важно чтобы были разные условия в каждого else if. else if можно описать как исключающее или. Но очень важной вещью которую я хочу сказать является то что данные конструкции не могут существовать без самой логической операции if. То есть вы не можете просто взять и поставить else если нету логической операции if. А теперь давайте вернемся к нашему “исключающему или”. Алгоритм на псевдокоде который использует данную конструкцию: Если голоден тогда: … Иначе если хочу сладкого: Пойти на кухню; Открыть холодильник; Достать мороженное; Иначе: Продолжать учиться; Конец; Ну а теперь можем попробовать это на практике: 3) { … PHP: Junior Kit 29 } else if (3 == 3) { … } else { … } ?> Думаю вы заметили логический оператор == который означает равно. В следующей подразделе мы как раз рассмотрим какие есть логические операторы и их работу. 3.3 Логические операторы Поскольку вы уже поняли что такое логические операции и понимаете работу одного логического оператора, то можно двигаться дальше и начинать изучать логические операторы с помощью которых и можно строить условия для логических операций. Оператор Значение Пример > Больше чем $a > $b < Меньше чем $a < $b == Равно $a == $b != Не равно $a != $b === Тождественно равно $a === $b !== Тождественно не равно $a !== $b PHP: Junior Kit 30 >= Больше чем или равно $a >= $b <= Меньше чем или равно $a <= $b && Логическое “И” $a && $b And Логическое “И” $a and $b Or Логическое “ИЛИ” $a or $b || Логическое “ИЛИ” $a || $b - Табл. 4 - Логические операторы в РНР Ну а теперь мы пройдемся по каждому оператору разве что мы пропустим некоторые операторы которые повторяются. Если что то я не буду очень и очень рассматривать каждый, я буду говорить сразу же суть. Логический оператор > Вы уже знакомы с данным оператором ещё со школьного курса математики. Условие логической операции которая использует данный оператор будет равно истине только в том случае если первый аргумент будет численно равен больше чем второй аргумент: $a = 6; $b = 3; if ($a > $b) { echo $a.“Больше чем”.$b; } ?> PHP: Junior Kit 31 Логический оператор < Условие будет равно истине только в том случае если первый аргумент численно меньше чем второй аргумент, пример использования: $a = 1; $b = 5; if ($a > $b) { echo $a.”Меньше чем “.$b; } ?> Логический оператор == Условие логической операции будет равно истине в том случае если первый аргумент будет равен второму аргументу: $a = “Hello”; if ($a == “Hello”) { echo “Переменная равна: “ . $a; } // Можно также записать $a == $a // можно также использовать и другие // типы данных к данному оператору ?> Логический оператор != Условие логической операции которая использует данный оператор, будет равно истине если первый аргумент не будет равен второму аргументу: $a = “Hello”; if ($a != “world”) { echo “Переменная не равна world”; PHP: Junior Kit 32 } ?> Логический оператор === Условие которое использует данный оператор будет равно истине если первый аргумент равен второму аргументу, но при этом у них одинаковые типы данных: } ?> Логический оператор !== Условие будет равно истине если первый аргумент не равен второму аргументу, но при этом два аргумента имеют одинаковый тип данных: $a = “Hello”; $b = “world”; if ($a !== $b) { echo “$a не равно $b но имеют одинаковый тип данных”; } ?> PHP: Junior Kit 33 Логический оператор >= Условие будет равно истине если первый аргумент будет численно больше чем/равен второму аргументу: $a = 3; $b = 3; if ($a >= $b) { echo “Больше чем или равно”; // Главное не плутать этот оператор с этим => // оператором. } ?> Логический оператор <= Условие будет равно истине если первый аргумент будет численно меньшем чем/равен второму аргументу: $a = 1; $b = 5; if ($a <= $b) { echo “Меньше чем или равно”; } ?> Логический оператор && Это логическое “И”, его можно использовать к примеру если надо взять два аргумента и сравнить их с одним каким то аргументом. Или к примеру, можно взять два аргумента и сравнить их с двумя другими аргументами: PHP: Junior Kit 34 … if ($name && $surname == $login) { echo “Ошибка!”; … } ?> Также можно использовать аналог and: … if ($password and $login != $secret) { echo “Ошибка!”; … } ?> Логический оператор or Использование данного логического оператора надо тогда когда нам надо сравнить или первый аргумент или второй аргумент в логической конструкции. К примеру можно взять две переменные и задать условие если одна из переменных пустая то тогда… и так далее: … if (empty($login) or empty($name)) { echo “Ошибка!Переменные пустые!”; } ?> В нашем примере мы использовали специальную функцию empty() которая предназначена для работы со строками и проверять пуста ли строка или нет. Об функциях для работы со строками мы поговорим в отдельной главе, а пока что вам хватит понимая этого. Можно также использовать аналог | |: PHP: Junior Kit 35 … if (empty($login) || empty($name)) { echo “Ошибка!Переменные пустые!”; } ?> Заключение об логических операторах Без этих логических операторов в написании веб-приложения не обойтись. С помощью них как раз можно создавать все важные детали в приложении. К примеру без логических операторов не можно обойтись при создании безопасной регистрации и т.п. Об написании своего приложения с регистрацией и аутентификацией мы поговорим в будущих разделах. 3.4 Логическая операция switch Если у нас будет if в котором надо будет задать много вариантов условий, то в таком случае чтобы сократить написание кода надо использовать логическую операцию switch которая работает также как и if только немного по-другому создаются условия: … switch($a) { case 1: echo “A равно 1”; break; case 2: echo “A равно 2”; break; } ?> PHP: Junior Kit 36 Только что вы увидели сравнение с числовым типом данных. Можно также сделать с текстовым типом данных: } ?> Логическая операция switch выполняет команду за командой и очень важно понять работу этой логической операции если не хотите ошибок. То есть, switch просто ищет case в котором значение такое же самое с переменной которую мы хотим сравнить. Функция break поставлення в конце конструкции case останавливает выполнение данной конструкции. В switch есть аналог else, это default который выполниться если значение переменной не равно ни одному из вариантов case: … switch ($a) { case 1: echo “A равно 1”; break; case 2: echo “A равно 2”; break; PHP: Junior Kit 37 default: echo “A не равно 1 и 2”; } ?> Можно также реализовать к примеру такую конструкцию если к примеру переменная равнялась значению одной из конструкций и выводило одно и тоже сообщение: } ?> Только что мы реализовали логическую операцию switch. Если описать на языке логике то это выглядело приблизительно где то так: Если значение А равно 1 или 2 или же 3 то тогда: Вывести на экран надпись; … Но думаю возможно у кого-нибудь возник вопрос, как использовать логические операторы в данной логической конструкции. Такой вопрос возникает в некоторых новичков. Использование логических операторов в конструкции switch такое же самое как и в if, к примеру вот использование: … PHP: Junior Kit 38 switch ($a) { case ($a >= 10): echo “A больше чем или равно 10”; break; case ($a <= 10): echo “A меньше чем или равно 10”; break; } ?> Что ж, этого вам хватит знать об логической конструкции switch . Можем двигаться дальше и можно уже заканчивать главу. И закончим мы нашу главу небольшой интересной информацией об великом математике Джордже Буле - основоположника алгебры логики или как ещё её называют алгеброй Буля. 3.5 Логический тип данных Этот тип данных также называют boolean в честь английского математика Джорджа Буля, о котором мы поговорим немного позже. Логический тип данных может принимать только 2 значения это истинна и ложь. Пример создания двух переменных с логическими типами данных: $super = true; // Значение этой переменной равно истине $unhappy = false; // А значение этой переменной равно ложи ?> Мы уже говорили об том как к примеру условие операции может получать значение истинны и ложи. Некоторые функции в РНР могут отображать данные с помощью логического типа данных. К примеру PHP: Junior Kit 39 является такая-то переменная числом или нет, и если да то тогда мы получим ответ значением равным истине. Или наоборот, если какая-то переменная не является числом то мы получим ответ равный ложи. 3.6 Джордж Буль Немного краткой биографии перед тем как я начну рассказывать о том что сделал этот большой математик. Джордж Буль - британский математик, логик и философ. Родился 2 ноября 1815 года в городе Линкольн в Англии и умер 8 декабря 1864 года. Один из основателей логики математики. Джордж родился в не очень богатой семье ремесленника Джона Буля который увлекался математикой и логикой. Как раз отец Джорджа и дал ему первые уроки математики и заинтересовал сына в науке. - Рис. 3 - Портрет Джорджа Буля Если не было бы алгебры Буля то мы не смогли бы построить полноценные компьютеры и микроконтроллеры. Поскольку микропроцессоры строятся на логических вентилях которые исполняют логические операции которые описал Джордж Буль. Обо всем этом вы PHP: Junior Kit 40 можете почитать в книгах на тематику архитектуры компьютеров или как ещё это называют Архитектурой ЭВМ(Электрическая Вычислительная Машина). Давайте я приведу несколько правил которые создал Джордж Буль в алгебре логики. К примеру мы можем описать логический оператор И с помощью двоих кружков Ейлера как это показано на рисунку под номером 4. - Рис. 4 - Логическое И показное на схеме кружков Ейлера Тут есть только три переменные - это A,B и C. Теперь я объясню как все работает. Во первых давайте введем формулу для нашего логического “И”, которое в алгебре Буля обозначается +: A + B = C Наши переменные могут принимать только два значения это 1(истина) или 0(ложь). И в нашей формуле если две переменные будут иметь значения истины то переменная C будет равно истине. Лучше описать это очередной формулой: 1 + 0 = 0; 1 + 1 = 1; 0 + 1 = 0; Надеюсь что вы поняли что даже если хотя бы один аргумент равен 1, а второй нет, то все равно на выходе будет ноль(значение равное ложи). Но если мы хотим чтобы была истина на выходе и при этом один из аргументов был равен истине, а второй был равен ложи то следует PHP: Junior Kit 41 использовать логическое “ИЛИ” которое обозначается умножением в формулах: 1 * 0 = 1; 1 * 1 = 1; 0 * 1 = 1; Надеюсь вы заметили что конструкции которые существуют в алгебре Буля есть и в программировании но также оно используется и в компьютерах. Если вам интересна эта тематика, то вы можете найти много интересных книг на эту тему. Заключение В общем можно сказать что без логических операций вы не сможете построить своего веб-приложения. Они играют очень важную роль в программировании и нашей жизни. Поскольку когда мы делаем какой то выбор, то это уже и есть логическая операция. Без них не обойтись. Как и всегда я попрошу читателя попрактиковаться с материалом представленным в этой главе и ответить на вопросы и выполнить упражнения которые показаны ниже. Вопросы и упражнения для самоконтроля 1. Что такое логическая операция? 2. Какие есть логические операции в PHP? 3. Что такое if и как он работает? 4. Можно ли поставить конструкцию else без логической операции? 5. Назовите логические операторы в PHP. 6. Напишите код который использовал логическую операцию switch и делал сравнение значений переменной Z с числами 10,30,20. Значение переменной давайте сами. PHP: Junior Kit 42 4 Циклы Слово цикл походит от грецкого слова kuklos - что значит круг. Думаю вы когда-нибудь встречались с этим словом. Цикл значит повторение каких то действий, пока не будет достигнута определенная цель. Циклы как и логические операции имеют свое условие и код который будет повторяться тогда когда условие цикла будет равно истине. Первый цикл с которым вы познакомитесь это будет цикл while. 4.1 Цикл while Цикл будет работать только тогда когда условие цикла будет равно истине. Описание работы цикла while на псевдокоде: Пока (голоден): Есть; … Конец; В этом примере видим что если я буду голоден, я буду есть до тех пор пока я не буду сыт, это логически выходит из того что если я буду сыт то я не буду голоден и не будет потребности использовать данный цикл. А теперь сделаем похожую вещь только уже на практике: } ?> После того как вы запустите этот код то с очень большой скоростью на страницу будет выводиться заданная нами надпись в теле цикла. Я думаю вы заметили что в условии я записал 2 + 2 == 4, в этом PHP: Junior Kit 43 есть небольшая программистская шутка о том пока мир не сойдет с ума то программа будет работать дальше. Условие равняется истине потому что 2 + 2 будет равно 4. Условие этого цикла можно сделать истинным просто поставив логический тип данных с истинным значением: } ?> Вы можете использовать в цикле логические операторы. Если вы хотите чтобы цикл работал, то вы просто должны сделать так чтобы условие цикла было равно истине. 4.2 Цикл do...while После того как вы познакомились с одним циклом, то пора переходить к следующему циклу который работает почти также само как и while только истинность условия проверяется в конце самого цикла. Этот цикл хорошо использовать нам к примеру надо вывести определенное число записей к примеру: $i = 0; do { $i++; } while ($i > 10); ?> Запустите этот код и у вас будет выводиться 10 цифр: от 0 до 9. Думаю кто задастся вопросом почему именно от 0 к девяти а не от 1-го к 10-ти, а все потому что в программировании и вообще в компьютерах |