Основы PHP для начинающих

Как пишутся скрипты на PHP

Для написания кода на PHP подходит любой текстовый редактор (например Notepad++).

Оглавление

Размещение PHP на HTML-странице

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

				
					<html>
<body>
<p>Это обычный HTML-документ</p>
<?php echo"А это PHP" ?>
</body>
</html>
				
			

С первого взгляда пример напоминает обычный файл HTML. Единственное новшество здесь –– конструкция <?php ?>.

Все, что стоит между <?php и ?>, интерпретируется как код на языке PHP. Здесь мы также видим пример использования команды echo –– одной из наиболее важных, часто используемых команд при программировании на этом языке. Команда echo применяется, когда необходимо что-либо написать в текущем документе. Так наша небольшая программа на PHP в HTML-документе выводит фразу “А это PHP”. Все что находится вне <?php ?> процессор РНР передает без изменения непосредственно на динамическую web-страницу.

Вместо специального тега <?php ?> могут также использоваться теги <script>:

				
					<script language="php">
код на РНР
</script>
				
			

Наш первый сценарий

Тексты сцеариев (php-программ) должны храниться в файлах с раширением php.

РНР-код состоит из отдельных операторов, каждый из которых завершается точкой с запятой (ее отсутствие вызовет сообщение об ошибке).

Первый скрипт на РНР (файл index.php) будет достаточно простым, но уже он продемонстрирует совместное использование HTML и РНР.

				
					<html>
<head>
<title>Первый пример</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<link href="css/styles.css" rel="stylesheet" type="text/css" />
</head>
 
<?php
/* Присваиваем значения нескольким переменным */
$title = "Наша первая динамическая страница";
$user_name = "User";
/* Определяем константу */
define(pi, 3.141592);
?>
<body>
<hr />
<?php
echo "<h3> $title </h3>";
/* echo - конструкция php для вывода текста с сервера в браузер */
echo "<p>"."Ваше имя: ".$user_name."</p>"; // имя пользователя
echo "<p>", "Дата: ", date("d-m-Y"), "</p>"; // текущая дата
echo "<p>", "Константа pi = ", pi, "</p>";
?>
<hr />
</body>
</html>
				
			

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

Данный текст можно набрать в любом текстовом редакторе, например, в NotePad++, и сохранить под именем index.php. Следует убедиться, что файл сохранен как php-файл, в противном случае он не будет корректно обработан РНР.

В случае локальной работы необходимо скопировать файл index.php в каталог документов web-сервера. Для Denver это home/localhost/www (если в настройках не указано иное). После чего можно переходить непосредственно к запуску скрипта.

Для запуска скрипта index.php следует открыть web-браузер, а затем ввести в адресной строке полный путь к этому скрипту. В случае локальной установки адрес будет таким:

Сервера, Web и не только

Если все сделано правильно, на экране мы увидим:

Сервера, Web и не только

Файл styles.css (таблица стилей):

				
					/* Стили для отображения содержимого страницы*/
* {
margin: 0; padding: 0;
}
body {
font-family: Verdana, Arial, sans-serif;
color: #14556b;
background-color: #f2f2f2;
margin: 20px;
}
h3, p {
margin: 6px 0; /* Поля заголовков и абзацев*/
}
				
			

Прямо из браузера мы можем просмотреть код этой странички, сформированный web-сервером:

Сервера, Web и не только

Таким образом, имя переменной заменяется ее значением, которое помещается на то же место, где в программе стояло имя этой переменной.

Итак, PHP-файлы обычно представляют собой смесь HTML, CSS и РНР. При этом РНР-код всегда заключается внутри конструкции <?php ?>. Web-сервер посылает HTML-код браузеру без изменения. РНР-код выполняется, и если он формирует теги и какой-либо текст для отображения, этот текст вставляется на то место, где размещался РНР-код. Браузер интерпретирует HTML-теги страницы и отображает результат на экране.

PHP-код может располагаться в произвольном месте и многократно включаться в текст скрипта. С его помощью можно также формировать и HTML-теги, что видно из нашего примера.

Комментарии в скриптах

Содержание PHP-скрипта представляет собой код на РНР или на HTML. Но есть также комментарии, которые предназначены для описания скрипта.

В РНР существует три типа комментариев. Первый позволяет располагать комментарии в нескольких строках, начиная их символами /* (записываются без пробела) и заканчивая символами */, например:

				
					<?php
 
/* В РНР существует три типа комментариев.
Первый позволяет располагать комментарии
в нескольких строках */
 
?>
				
			

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

Многострочные комментарии могут оказаться полезными там, где надо вставить значительный объем текста. Кроме того, распространенным приемом при отладке программы является заключение части кода в комментарий (чтобы предотвратить его выполнение).

Остальные два типа комментариев начинаются с символов // или символа # и продолжаются только до конца строки, в которой они записаны. Этот тип комментариев удобен тем, что их можно размещать справа от операторов, например:

				
					<?php
echo "Доброе утро!"; //вывод первой строки приветствия
echo "Доброе утро!"; #вывод второй строки приветствия
?>
				
			

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

Сервера, Web и не только

Отображение текста

Оператор echo, который предназначен для отображения произвольного текста на web-странице, является, пожалуй, наиболее употребительным оператором РНР. В простейшем случае после echo следует поместить одну строку в кавычках. Текст может быть заключен как в двойные кавычки, так и в простые кавычки (апострофы). Для отображения чисел кавычки необязательны, например:

				
					<?php
echo "12345";
echo ′12345′;
echo 12345;
?>
				
			

В общем случае после echo можно записать несколько строк для вывода, которые разделяются запятыми.

При необходимости длинная строка может быть размещена на нескольких строках в тексте скрипта, например:

				
					<?php
 
echo "Этот текст
занимает
нескольео строк";
 
?>
				
			

Отдельные строки могут объединяться при помощи оператора сцепления «.» –– точка. В результате образуется единая строка, которая передается оператору echo. Например:

				
					<?php
 
echo "Привет,"."это"."PHP";
 
?>
				
			

что эквивалентно

				
					<?php
 
echo "Привет, это PHP";
 
?>
				
			

Для отображения кавычки следует разместить перед ней обратный слеш, например:

				
					<?php
 
echo "Он сказал: \"Я люблю пить по утрам - кофе\"";
 
?>
				
			

Замечание. Если выводится одна текстовая строка, то вместо оператора echo можно использовать функцию print. В этом случае различий между echo и print нет. Однако в echo мы можем добавлять к первой строке другие строки, разделяя их запятыми

Отображение большого текста

При использовании echo для отображения большого объема текста его можно записать так: вначале ставим символы <<<, после которых следует произвольный идентификатор. Далее располагается текст, в конце которого начиная с первого символа новой строки размещается тот же самый идентификатор. 

Вывод без использования echo или print

Иногда, чтобы упростить код фрагмента программы, можно отказаться от использования echo. В языке php конструкция <?php echo ?> эквивалентна <?= ?>. Например, вывод значения отдельной переменной <?php echo “$var”; ?> можно записать в сокращенной форме (без пробелов) так: <?=$var ?>.

Переменные, оператор присваивания

Как и в любом языке программирования, переменные предназначены для хранения данных. В РНР имена переменных всегда начинаются со знака доллара $, далее следует буква или знак подчеркивания, после которого может следовать произвольное количество букв, цифр или знаков подчеркивания. Следует помнить, что в именах переменных большие буквы и малые буквы различаются. Например, $var и $Var –– это разные переменные.

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

Переменная существует до тех пор, пока выполняется программа.

Для присвоения значения переменной в РНР используется оператор присваивания, обозначаемый знаком равенства =. Ниже приведены примеры операторов присваивания:

				
					$ternperature = 24;

$number_of_earths = 1;

$pi = 3.1415926535;

$message = “Доброе утро!”;
				
			

Обратим внимание, что одним переменным присвоены числа, а другим — строки.

Задание. Вывести все значения этих переменных в браузер: (1) каждое значение –– в новой строке; (2) –– все значения –– в одной строке.

Константы

Иногда не требуется менять в программе один раз заданное значение. Для этого используются константы — их значения не изменяются в процессе выполнения скрипта.

Для описания константы используется функция define, которой передается имя константы и ее значение. Существует соглашение, по которому имена констант всегда пишутся в верхнем регистре (большими буквами), например:

				
					define (“PI”, 3.1415926535);
				
			

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

Константам нельзя давать имена, которые являются служебными словами языка РНР (так как перед именем константы не ставится знак доллара).

Зарезервированные (служебные) слова РНР:

andarrayasbreakdefault
diedoechoendifendswitch
endwhileglobalifincludeprint
requireevallnclude_onc erequire_oncereturn
caseсfunctionclassconstcontinue
declareelseelseifemptyenddeclare
endforendforeachexceptionexitextends
forforeachfunctionissetlist
newold_functionorphp_user_filterstatic
switchunsetusewhilexor

В языке РНР определено множество встроенных констант, которые можно использовать в сценариях. Эти константы начинаются с двух символов подчеркивания и заканчиваются тоже двумя символами подчеркивания. Например:

				
					__CLASS__	__FILE__	__FUNCTION__	__LINE__	__METHOD__
				
			

Прерывание выполнения сценария

Наиболее часто для останова выполнения сценария применяется функция exit(). Другой полезной функцией является die(“Сообщение”), которая позволяет также вывести сообщение об ошибке. Это позволяет сообщить пользователю причину, по которой сценарий завершился неудачей.

Уничтожение переменной

Иногда требуется принудительно уничтожить переменную. Для этого предназначена функция unset().

				
					<?php
 
$variable = "Строка";
unset($variable);     // уничтожаем переменную
 
?>
				
			

Если попробовать выполнить оператор echo “$variable” после вызова функции unset, то мы получим сообщение об ошибке –– переменная $variable больше не будет существовать.

Можно одновременно уничтожить несколько переменных:

				
					unset($variable, $name);
				
			

Следующий текст при первом чтении можно пропустить

Типы данных

В языке РНР тип переменной определяется автоматически при создании переменной на основе ее значения. Тем не менее, следует иметь представление о типах данных, которые могут использоваться. Всего их восемь:

  • Логический тип, содержит значения TRUE или FALSE.
  • Целое число.
  • Вещественное число.
  • Текст произвольной длины.
  • Массив.
  • Объект.
  • Ресурс (например, файл).
  • NULL Значение NULL.

Например:

				
					$variable = TRUE;
				
			

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

				
					<?php
 
$variable = "0";               // строка "ноль"
$variable = Svariable + 2;  // целое число 2
$variable = Svariable +1.1; // вещественное число 3.1
$variable =2 + "8";              // целое число 10
 
?>
				
			

Для предотвращения потенциальных проблем не следует смешивать различные типы данных. Но даже и в таком случае РНР выполняет неявное преобразование типов. Если же требуется выполнить явное преобразование типа, то требуемый тип должен быть указан слева от имени переменной в круглых скобках. Вот несколько примеров явного преобразования типов:

				
					$int_variable = (integer) $variable;

$float_variable = (float) $variable;

$string_jyariable = (string) $variable;
				
			

При преобразовании в логический тип boolean, следующие значения преобразуются в значение FALSE.

  • Целое число 0.
  • Вещественное число 0.0.
  • Пустая строка и строка “0”.
  • Массив с нулевым количеством элементов.
  • Объект, не имеющий свойств.
  • Специальный тип NULL.

 

При преобразовании к типу целых значений другие типы преобразуются так:

  • Логическое FALSE преобразуется в целое число 0, логическое TRUE преобразуется в целое число 1.
  • Вещественные числа округляются в меньшую сторону. При преобразовании в вещественное число сперва осуществляется преобразование в целочисленное значение.

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

Любые другие значения, включая все ресурсы, преобразуются в TRUE.

Итоги

Язык РНР предназначен для создания динамических web-страниц.

  • Код РНР заключается между тегами <?php и ?>.
  • Оператор echo предназначен для отображения текста.
  • Имеется возможность включать в код РНР большие блоки текста
  • В РНР используются три вида комментариев: /* … */, // и #.
  • Имя переменной предваряется знаком доллара $, начинается с буквы или знака подчеркивания, после которого может следовать произвольное количество букв, цифр или знаков подчеркивания.

Выражения в языке программирования. Выражения в PHP.

Добрый день! Вы уже знаете, что такое константы и переменные в PHP, и сегодня я расскажу вам о выражениях в PHP. Вы узнаете, что такое выражения в языке программирования и познакомитесь с их видами в PHP.

Довольно сложно самому сформулировать определение понятия выражение. В мануале по PHP написано следующее:

Выражения в PHP — это краеугольный камень PHP. Почти все, что вы пишите в PHP, является выражением. Самое простое и точное определение выражения — «все что угодно, имеющее значение».

Основными формами выражений являются константы и переменные. Если вы записываете «$a = 5», вы присваиваете ‘5’ переменной $a. ‘5’, очевидно, имеет значение 5 или, другими словами, ‘5’ это выражение со значением 5 (в данном случае ‘5’ это целочисленная константа).

Из этого текста вы поняли, что такое выражение? Лично я — нет. Я абсолютно не согласен с этим утверждением. Мне больше по душе (и так гораздо понятней) следующее определение:

«Выражение — конструкция на языке программирования, предназначенная для выполнения вычислений. Выражение состоит из операндов, объединенных знаками операций. Различают арифметические, логические и символьные выражения.»

Это простое выражение:

				
					$a = 1 + 2;
				
			

Теперь ишем в определении ключевые слова: «Ага… ‘выполнения вычислений’, ‘операнды’, ‘операции’, ‘арифметические, логические и символьные выражения’».

Определяемся со значением:

  • выполнение вычислений — какие-то расчеты (1 + 2 = 3).
  • операнды — это то что участвует в вычислении (числа 1 и 2).
  • операции — то, что делается с операндами (сложение, вычитание, умножение и т.д.).
  • арифметические, логические и символьные выражения — это типы выражений в зависимости от вычисляемого результата. В примере выше- арифметическое выражение.

Логическое выражение — это сравнение (операция ‘<‘ больше, ‘>’ меньше, ‘<=’ больше или равно, ‘>=’ меньше или равно, ‘==’ равно, ‘!=’ не равно):

				
					($a < $b)
				
			

Символьвольное выражение — это выражение, в результате вычислений которого получается строка (операция ‘.’, конкатенация строк или склеивание строк):

				
					$a = ‘Привет ‘  .  $name;
				
			

Выражения — это основа любого языка программирования. Понимание этой теории очень важно для дальнейшего обучения. Если вы не поняли эту заметку — перечитайте еще раз. Снова не поняли — задайте мне конкретный вопрос в комментариях и я объясню вам. До встречи!

Операторы PHP

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

Специальные операторы присваивания

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

+= (сложение)

–= (вычитание)

*= (умножение)

/= (деление)

.= ()

%= (остаток от деления)

&= ()

|= ()

^= ()

<= ()

>= ()

 

Например, требуется прибавить 10 к значению переменной $value. Обычный оператор присваивания записывается так:

				
					$value = $value + 10;
				
			

С использованием оператора присваивания += то же самое можно записать короче:

				
					$value += 10;
				
			

Увеличение и уменьшение

Во многих случаях требуется увеличить или уменьшить значение некоторой переменной на единицу. Особенно часто это используется в циклах. В РНР для этого предусмотрены специальные операторы присваивания.

Для увеличения значения на единицу записываем ++,

для уменьшения записываем – –.

Например, если переменная $value содержит значение 0, то после выполнения оператора $value++ ее значение станет равным 1. Если переменная $value содержит значение 11, то после выполнения оператора Svalue– – ее значение станет равным 10.

Операции ++ и – – могут быть записаны как до, так и после имени переменной. Если используется запись ++$value, то значение переменной увеличивается, и это же значение используется как результат вычисления данного выражения. При использовании записи $value++, результатом вычисления выражения становится значение переменной до ее увеличения.

Условный оператор IF

Как и во всех высокоуровневых языках программирования, в РНР имеется условный оператор if:

				
					if (expression) statement
				
			

Здесь expression — логическое выражение, которое может быть истинным или ложным. Оператор statement выполняется, когда выражение expression истинно и не выполняется когда оно ложно.

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

				
					if (expression) { statement1; statement2; … } 
				
			

Зачастую возникает необходимость в случае истинности определенного условия выполнить какое-либо одно действие, а в противном случае — другое. Для этого используется оператор

				
					if (expression) statement1 else statement2 
				
			

Оператор statement2, следующий после служебного слова е1se, выполняется в том случае, если условие expression не подтверждается.

Оператор if имеет еще одно расширение, которое используется для последовательной проверки нескольких условий, при этом используется ключевое слово elseif:

				
					if (expressionl)
statementl
elseif (expression2)
statement2
elseif (expression3)
statement3
else
statement4
				
			

Если условие expressionl истинно, то выполняется оператор statementl. В противном случае проверяется условие expression2, и если оно истинно, выполняется оператор statement2 и т. д. Это удобно, если существует множество сложных условий, которые требуется проверить.

Оператор SWITCH

При проверке большого количества условий даже использование оператора if … elseif может стать утомительным. В таких случаях на помощь приходит оператор switch, предназначенный для сравнения заданного выражения с различными вариантами значений некоторой переменной.

Оператор начинается с ключевого слова switch, за которым в скобках записывается некоторое выражение. Далее после ключевого слова case перечисляются возможные варианты значений этого выражения. В случае совпадения результата вычисления выражения с каким-либо значением, выполняются операторы, записанные ниже, вплоть до оператора break. Если результат вычисления выражение не совпал ни с одним из значений, заданных после case, выполняются операторы, расположенные после ключевого слово default. Впрочем, секция default может и отсутствовать, тогда в таком случае никаких действий не выполняется.

В следующем коде можно увидеть, как одну и ту же задачу можно решить с помощью if и switch:

				
					<?php
    $status = 2; // Номер статуса заказа

    if($status == 1)
        echo 'Статус: Обрабатывается';
    elseif($status == 2)
        echo 'Статус: Передан в доставку';
    elseif($status == 3)
        echo 'Статус: Выполнен';
    else
        echo 'Статус: Неизвестен';

    // Аналогичный код для switch
    switch($status)
    {
        case 1:
            echo 'Статус: Обрабатывается';
            break;
        case 2:
            echo 'Статус: Передан в доставку';
            break;
        case 3:
            echo 'Статус: Выполнен';
            break;
        default:
            echo 'Статус: Неизвестен';
    }
?>
				
			

Циклы FOR

Повторяющиеся действия записываются при помощи циклов.

Циклы for предназначены для повторения выполнения некоторого оператора (который может быть и составным). Синтаксис цикла for приведен ниже:

				
					for (expressionl; expression2; expression3) statement
				
			

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

Следующее логическое выражение, expression2, задает условие повторения цикла. Цикл продолжает выполняться до тех пор, пока это выражение остается истинным. Первый раз условие проверяется до выполнения оператора statement, так что если условие цикла будет ложным с самого начала, тело цикла не будет исполнено не разу. Обычно условие используется для проверки текущего значения параметра цикла.

Наконец, третье выражение expression3, выполняется каждый раз после тела цикла. Обычно оно используется для изменения (например, увеличения) параметра цикла.

Рассмотрим случай, когда нужно вывести на экран числа от 1 до 10 через запятую. Ниже приведен код:

				
					for($i=1;$i<=10;$i++)
print $i.',';
				
			

Или с фигурной скобкой:

				
					for($i=1;$i<=10;$i++)
{
print $i.',';
}
				
			

Пример. Четные цифры можно вывести с использованием цикла for таким образом:

				
					<?php
 
for ($i = 0; $i < 10; $i++) {
 
if ($i % 2 == 0) echo $i;
 
}
 
?>
				
			

Циклы while

Цикл while проверяется некоторое условие и выполняется до тех пор, пока оно остается истинным.

				
					while (expression) statement 
				
			

Оператор statement, образующий тело цикла, может быть как простым, так и составным. Условие проверяется перед вьшолнением тела цикла, так что если оно будет ложным с самого начала, цикл не выполнится ни разу. Как легко догадаться, тело цикла должно оказывать какое-то влияние на условие, чтобы предотвратить образование бесконечного цикла (зацикливание).

Пример: вывести числа от 0 до 10

				
					<?php

$i = 0;

while ($i <= 10) {
    echo $i++;
    echo '<br>';
}
				
			

Циклы do … while

Наряду с циклами while в PHP имеются и циклы do … while. Основное их отличие состоит в том, что условие цикла проверяется не до, а после того как тело цикла будет выполнено:

				
					do
 
statement
 
while (condition)
				
			

Простой пример, который иллюстрирует разницу между этими двумя типами циклов и работы их условных операторов. Работа цикла while:

				
					$cookies = 0;
while($cookies > 1){
	echo "Мммм! Люблю печеньки! *ом-ном-ном*";
} 
				
			

В результате мы не увидим ничего, так как переменная $cookies равна нулю и условие $cookies > 1 не сработает, следовательно цикл не выполнится. Теперь давайте сделаем то же самое, но с циклом do while:

				
					$cookies = 0;
do {
	echo "Мммм! Люблю печеньки! *ом-ном-ном*";
} while ($cookies > 1);
				
			

В результате:

Мммм! Люблю печеньки! *ом-ном-ном*

Циклы foreach

Для упрощения обработки массивов предусмотрен специальный тип цикла — оператор foreach. Массивы будут рассматриваться более подробно в следующих лекциях, а здесь они будут лишь бегло упомянуты.

Массивы состоят из отдельных элементов, и цикл foreасh предназначен для перебора всех этих элементов. Ниже приведены варианты синтаксиса этого оператора:

				
					foreach (array as $value) statement
 
foreach (array as $key => $value) statement
				
			

Оператор break

Иногда требуется прервать выполнение тела оператора for, foreach, while, do. . .while или switch. Этого можно достичь при помощи оператора break.

Он уже встречался ранее при рассмотрении оператора switch — там он использовался для завершения обработки определенного значения температуры. При помощи оператора break можно также досрочно прервать выполнение любого цикла.

Оператор continue

Наконец, предусмотрена возможность досрочного перехода к началу цикла, не выполняя все тело цикла целиком. Для этого используется оператор continue.

PHP if-else. Условия в PHP.

В прошлый раз я писал о существующих типах операторов в PHP. Этот пост начинает серию связанных заметок об управляющих структурах (условия, циклы и т.д.) в PHP. В этой заметке речь пойдет об условном операторе IF..ELSE в PHP. Я познакомлю вас с синтаксисом конструкции if..else, а затем на конкретных примерах разберем различные способы использования if в PHP.

Условия в PHP

С условиями в PHP вы будете всречаться в каждом скрипте. Это, пожалуй самый распространенный вид управляющих структур. В PHP существует несколько типов условных конструкций. Сегодня мы поговорим о конструкции «if-else«.

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

Итак, как же выглядит синтаксис конструкции if…else в PHP:

				
					<?php 
$a = 5; 
$b = 10; 
if ($a > $b) {
 echo "Переменная A больше, чем B";
}
 else {
 echo "Переменная B больше, чем A";
}
 
?>
				
			

По порядку:

  • условие — здесь должно стоять какое-либо выражение, результат выполнения которого должен быть равен true или false. Например «$a < $b», вызов какой-то функции.
  • если результат вычисления равен true (условие выполняется), то выполняется первая ветка (до ключевого слова else).
  • если результат вычисления равен false (условние не выполняется), то выполняется вторая ветка (после ключевого слова else).

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

				
					<?php
 if (условие) 
{ // если условие выполняется (true - истина) } 
?>
				
			

Если условие выполнилось — то мы заходим внутрь, если не выполнилось — то пропускает, то что внутри if и идем дальше.

Пример использования if…else в PHP

				
					<?php
 
$a = 5;
$b = 10;
 
 
if ($a > $b) {
 echo "Переменная A больше, чем B";
}
 else {
 echo "Переменная B больше, чем A";
}
 
?>

				
			

Наберите этот пример и посмотрите, как он работает. В нашем случае на экран выведется строка echo «Переменная B больше, чем A», это происходит потому, что результат сравнения $a  >  $b равен false (ложь), т.к. 5 меньше, чем 10. Как видите все просто.

Попробуйте присвоить другие значения переменным $a и $b и посмотреть, как измениться результат. Также попробуйте переписать эту конструкцию без использования else.

Если, что-то не до конца понятно — пишите в комментах, разберемся. Удачи!

Switch. Условные конструкции в PHP. Часть 2.

В первой части статьи про условия в PHP мы разбирались про синтаксис и примеры использования конструкции if…else…. В этой заметке мы продолжим рассматривать управляющие условные конструкции в PHP. Речь здесь пойдет о конструкции ветвлений switch (case). Мы рассмотрим его в сравнении с конcтрукцией if..else, и на примерах разберем случаи, когда выгодней использовать switch вместо if.

Проблема использования IF

Как я уже сказал switch используется для построения условных конструкций. Давайте сначала напишем сложное ветвление с помощью if…else:

				
					<?php 
 $a = 4;
 if ($a == 1) { 
 echo "A = 1"; 
 } 
 elseif ($a == 2){ 
 echo "A = 2"; 
 } 
 elseif ($a == 3){ 
 echo "A = 3"; 
 } 
 elseif ($a == 4){ 
 echo "A = 4"; 
 } 
 elseif ($a == 5){ 
 echo "A = 5"; 
 } 
?>
				
			
Что мы здесь имеем. Переменную $a со значением 4. И кучу условий, которые по очередно сравнивают значение переменной $a сначала с 1, затем с 2 и т.д. до 5. Если в какой то момент условие выполняется, то на экран выводится строка. В нашем случае на экран выведется строка:

A = 4

Громоздкая конструкция не так ли? Лично у меня от нее рябит в глазах…

Использование Switch

В случаях когда значение какого-либо выражения нужно сравнить с фиксированной величиной гораздо выгоднее использовать конструкцию switch.

Синтаксис switch:

				
					switch (выражение) {
    case 'значение 1':
        группа операторов 1;
        break;
    ........................
    case 'значение n':
        группа операторов n;
        break;
    default:
        группа операторов по умолчанию;
        break;
}
				
			

Логика работы как и в предыдущем примере с if. Выражение, которое стоит в switch поочередно (сверху вниз) сравнивается со значениями в case. Если соответствие найдено, то выполняется группа операторов в этой ветке case. Ветка default выполняется в том случае, если выражение не равно ни одному значению из case.

Важно: в этом описание использовано новое для вас ключевик слово break. Это ключевое слово используется для выхода из конструкции наружу (во внешний блок). Если мы уберем break, то после выполнения кода в ветке с соответствующим значением, будут выполняться все ветки, которые расположены ниже. Это типичная ошибка начинающих программистов. Будьте внимательны!

Рассмотрим использование switch на нашем примере:

				
					<?php 
$a = 5; 
switch ($a) { 
 case 1: 
 echo "A = 1";
 break; 
 case 2: 
 echo "A = 2"; 
 break; 
 case 3: 
 echo "A = 3"; 
 break; 
 case 4: 
 echo "A = 4"; 
 break; 
 case 5: 
 echo "A = 5"; 
 break; 
 default: 
 echo "A не равно числам 1,2,3,4 и 5"; 
 break; } 
?>
				
			

Выполните этот код и посмотрите результат выполнения.

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

Самостоятельные задания:

  • Измените значение переменной $a так, чтобы попасть в другую ветку и в ветку выполняющуюся по умолчанию (default).
  • Удалите break из кода и посмотрите, как поведет себя код.


На сегодня все.

Свежие записи
Команда RD

Команда RD и RMDIR позволяют удалять как каталоги, так и

Команда RENAME

RENAME что это? Команда RENAME позволяет переименовать файл или каталог.

Команда MD

Команда md позволяет создавать каталог или промежуточные каталоги в указанном

CMS и сайты
help2site
Как ускорить сайт на WordPress

В этой статье мы поговорим об ускорение времени загрузки сайта на CMS WordPress. Быстрая загрузка сайта необходима не только для удобства пользования сайтом посетителями, но

Разработка сайтов
help2site
Памятка по форматированию контента

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

CMS и сайты
help2site
Drupal theming: темы, регионы, меню и комментарии

Как добавить новую позицию (регион) блока в тему (шаблон) Друпал 7. Добавление новой позиции в тему Друпал 7 для большей функциональности. Создание нового региона в

CMS и сайты
help2site
Как сделать дизайн сайта правильно

Оглавление Дизайн сайта: некоторые ошибки оформления. Дизайн сайта имеет значение! И это не просто слова. Оно и понятно, – ведь любой человек старается выделиться не

CMS и сайты
help2site
ШОРТКОДЫ [SHORTCODES]

Доброго времени суток, дорогой читатель! В этой статье речь пойдет о шорткодах для WordPress, что это такое, где они используются, ну и конечно же примеры

Windows и Windows Server
help2site
Все CMD команды

В этом разделе собран полный список CMD команд Windows от А до Я. Также будут добавлены команды Linux. Оглавление A append — позволяет программам открывать