Php while

Очень часто при написании скриптов требуется выполнить одно и тоже действие несколько раз. Для этого и нужны циклы. Циклы в php, как и в других языках, делятся на несколько типов:

  1. Цикл со счетчиком for
  2. Цикл с условием while, do-while
  3. Цикл для обхода массивов foreach

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

Цикл For в PHP

Цикл со счетчиком for — выполняется определенное количество раз. Рассмотрим пример:

<?php  for ($i = 0; $i <= 10; $i++) {      echo "Дизайн студия OX2.ru - написано: $i раз<br/>";  }  ?>

В этом примере цикл будет выполняться 11 раз. От 0 (т.к. переменная $i = 0) до 10 (т.к. $i <= 10). Каждую итерацию $i будет увеличено на 1 ($i++). Чтобы было понятней, сделаем еще один пример:


<?php  for ($i = 5; $i < 10; $i++) {      echo "Номер итерации: $i<br/>";  }  ?>

Цикл будет выполняться от 5 и до 9 ($i < 10 (в предыдущем примере было <= 10)).

Так же цикл можно выполнять в обратном порядке:

<?php  for ($i = 10; $i > 5; $i--) {      echo "Номер итерации: $i<br/>";  }  ?>

Цикл будет выполнен от 10 и до 5.

Так же цикл можно выполнять с определенным шагом, рассмотрим пример:

<?php  for ($i = 0; $i <= 10; $i = $i + 5) {      echo "Номер итерации: $i<br/>";  }  ?>

В цикле будет выполнено 3 итерации (0, 5, 10) с шагом 5. Каждую итерацию, счетчик цикла будет увеличен на 5.

Цикл foreach в PHP

Цикл foreach — самый распространенный цикл. Требуется почти во всех скриптах, особенно если php скрипт работает с базами данных. Используется для обхода массивов.


Например, рассмотрим небольшой пример:

<?php  $arr[0] = "red";  $arr[1] = "blue";  $arr[2] = "green";  $arr["color"] = "yellow";  $arr["test"] = "дизайн студия ox2.ru";  foreach ($arr as $key => $value) {      echo "Ключ: $key, Значение: $value<br/>";  }  ?>

Запустив скрипт вы увидете:

Ключ: 0, Значение: red  Ключ: 1, Значение: blue  Ключ: 2, Значение: green  Ключ: color, Значение: yellow  Ключ: test, Значение: дизайн студия ox2.ru   

Цикл while в PHP

Цикл while используется для выполнения цикла до тех пор, пока выполняется условие. Если условие ни когда не будет выполнено, то цикл зациклиться.

Рассмотрим пример:

<?php  $i = 0;  while ($i < 20) { //Цикл выполняется до тех пор, пока $i меньше 20      $i = $i + 1; // Увеличение переменной $i на 1, сокращенная запись $i++            echo $i . "<br/>";  }  ?>

На экране увидим числа от 1 до 19

Цикл do-while в PHP:


Цикл do-while — работает точно так же как и цикл while, единственное отличие что условие выполняется после итерации. Напишем пример:

<?php  $i  =  0;  do {      $i = $i + 1; // Увеличение переменной $i на 1, сокращенная запись $i++      echo "$i<br/>";  }  while ($i < 20); //Выполняем цикл до те пор, пока $i < 20  ?>

На экране увидим числа от 1 до 20. Обратите внимание, что в предыдущем примере с циклом while было от 1 до 19, т.к. условие выполнялось до итерации цикла.

Для того чтобы прервать цикл существует функция break, она позволяет выйти из цикла, не зависимо от того сколько итераций осталось до окончания цикла.

Для того чтобы пропустить итерацию, и перейти к следующей итерации — есть функция continue.

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

blog.ox2.ru

1. Циклы while

В программировании часто необходимо повторить один и тот же блок кода несколько раз. Это можно реализовать с помощью операторов цикла. Язык PHP содержит несколько типов операторов цикла. Данный раздел рассматривает цикл while.


Оператор while циклически повторяет блок кода, пока указанное условие имеет значение true. Другими словами, оператор while будет выполнять блок кода, если и пока условие будет истинным.

Базовый синтаксис цикла while показан ниже.

while (условие) {
выполняемый код;
}

Код в цикле while будет повторно выполняться, пока условие в начале цикла имеет значение true. Блок кода, связанный с оператором while, всегда заключается в фигурные скобки.

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

В приведенном выше примере переменная $number получает начальное значение, равное 5. Цикл while выполняется, пока условие ($number >=2), или значение $number больше или равно 2, и печатает в окне браузера значение $number. В конце блока цикла значение $number уменьшается на 1.

Ниже показан вывод, создаваемый примером цикла.
54
32

При первом выполнении значение $number равно 5. Так как 5 больше 2, используется оператор echo для вывода значения 5. При выводе присоединяется <br/>, чтобы создавать возврат каретки при каждом выполнении цикла.
тем значение $number уменьшается на 1. Во время второй итерации значение $number равно 4. Так как 4 больше 2, то оператор echo выводит значение 4. Этот процесс продолжается, пока значение $number равно 3 и 2. Когда $number равно 2, оператор echo выводит значение 2, а значение $number затем уменьшается на 1. Так как 1 не больше и не равно 2, то условие больше не выполняется, и цикл while заканчивается.

2. Циклы do while

Оператор do…while повторяет циклически блок кода, пока определенное условие принимает значение true. Другими словами, оператор do…while будет выполнять блок кода, если и пока условие будет выполняться (т.е. оцениваться как true).

Цикл do…while аналогичен по своей природе циклу while, рассмотренному в предыдущем разделе. Ключевое различие состоит в том, что тело цикла do…while будет обязательно выполнено как минимум один раз. Это связано с тем, что оператор условия оценивается в конце оператора цикла после выполнения тела цикла.

Базовый синтаксис цикла do…while показан ниже.

do {
выполняемый код;
}
while (условие);

Выполнение кода внутри цикла do…while будет повторяться, пока условие в конце цикла будет оцениваться как true. Блок кода, связанный с оператором do…while, всегда размещается внутри фигурных скобок.


Следующий пример демонстрирует цикл do…while, который продолжает выполняться, пока переменная $number будет больше или равна 2.
$number = 5;
do {
echo $number . «<br/>»;
$number -= 1;
}
while ($number >= 2);

В приведенном выше примере переменная $number инициализируется значением 5. Цикл do…while выполняется до тех пор, пока справедливо условие ($number >=2) или $number больше или равно 2, выводя значение $number в окне браузера.

В конце блока цикла значение $number уменьшается на 1.

Ниже показан вывод, создаваемый примером цикла:
54
32

Во время первого выполнения значение $number равно 5. Так как условие для выполнения цикла не проверяется, пока цикл не будет выполнен один раз, то выводится значение $number, равное 5. Затем значение $number уменьшается на 1, становясь равным 4. Так как 4 больше 2, снова выполняется цикл, и во время второй итерации используется оператор echo для вывода значения 4. В вывод добавляется <br/>, чтобы создать возврат каретки при каждом выполнении цикла.

Этот процесс продолжается, пока значение $number равно 3 и 2. Когда $number становится равным 2, оператор echo выводит значение 2, и значение $number уменьшается затем до 1. Так как 1 не больше и не равно 2, то условие больше не выполняется, и цикл do…while заканчивается.

3. Цикл for


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

Базовый синтаксис цикла for показан ниже.

for (инициализация; условие; шаг цикла) {
выполняемый код;
}

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

Следующий пример демонстрирует цикл for для 4-кратного вывода сообщения
«Добро пожаловать в мир PHP»:

В приведенном выше примере цикл for включает три параметра, который выполняют следующие задачи:

  • Переменная $counter инициализируется значением 1.
  • $counter < 5 определяет условие, которое должно выполняться для выполнения цикла.
  • $counter++ увеличивает значение переменной $counter при каждом выполнении цикла.

Ниже показан вывод, созданный этим примером цикла.
Добро пожаловать в мир PHP!
Добро пожаловать в мир PHP!
Добро пожаловать в мир PHP!
Добро пожаловать в мир PHP!

При первом выполнении переменная $counter инициализируется значением 1.
к как 1 меньше 5, $counter увеличивается на 2. Затем используется оператор echo для вывода строки «Добро пожаловать в мир PHP!». К выводу присоединяется <br/>, чтобы создавать возврат каретки при каждом выполнении цикла. Во время второй итерации значение $counter будет равно 2. Так как 2 меньше 5, то оператор echo снова выводит строку «Добро пожаловать в мир PHP!». Этот процесс продолжается при значениях $counter, равных 3 и 4. Когда $counter становится равным 5, условие больше не выполняется, и цикл for заканчивается.

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

Каждый элемент имеет связанный с ним индекс. Первый индекс массива с числовыми индексами равен 0. До сих пор при выводе элементов массива требовалось выводить каждый элемент отдельно. Для больших массивов это может потребовать много времени и оказаться громоздким. Циклы for решают эту проблему. В следующем примере создается массив с 5 элементами. Затем применяется цикл for для вывода всех значений массива.

Массив $colors содержит пять элементов — $colors[0] = “red”, $colors[1] = “green”, $colors[2] = “blue”, $colors[3] = “yellow”, и $colors[4] = “white”.
здается цикл for. Переменной счетчику $i сначала задается значение 0, что соответствует первому элементу массива. Затем задается условие, проверяющее, что значение счетчика $i меньше sizeof($colors) или общего числа элементов массива. Здесь мы знаем, что размер массива равен 5, однако в большинстве случаев размер массива во время выполнения неизвестен. Наконец, переменная счетчика увеличивается на 1 во время каждой итерации. На каждом шаге выполнения цикла выводится строка — «Значением элемента массива $i+1 является $colors[$i]». Значения $i+1 и $colors[$i] расширяются и создают при выводе литеральные значения. Цикл выполняется, пока счетчик не превысит число элементов или размер массива.

Получаемый вывод показан ниже.

Значением элемента массива 1 является red.
Значением элемента массива 2 является green.
Значением элемента массива 3 является blue.
Значением элемента массива 4 является yellow.
Значением элемента массива 5 является white.

Циклы являются полезными конструкциям, которые активно используются при программировании.

4. Цикл foreach

Конструкция foreach является вариацией цикла for и применяется для итераций на массивах. Существуют две различные версии цикла foreach.

Базовый синтаксис обоих версий цикла foreach показан ниже.


foreach (array as $value)
{
оператор
}
foreach (array as $key => $value)
{
оператор
}

Первый тип цикла foreach используется для итераций по массиву, обозначенному как array. Во время каждой итерации цикла текущее значение массива присваивается переменной $value, и счетчик цикла увеличивается на единицу.

Цикл продолжается, пока foreach не достигнет последнего элемента или верхней границы заданного массива. Во время каждой итерации значение переменной $value можно использовать любым способом, но исходное значение массива не изменяется. Чтобы изменить реальное значение массива, необходимо заменить символ «$» на символ “&». Любые изменения, сделанные в &value, будут присвоены элементу массива с текущим индексом.

Следующий пример демонстрирует, как цикл foreach применяется для итераций по значениям массива.

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

Различные цвета включают: red green blue

Вторая форма цикла обеспечивает такие же функции, что и первая, но дополнительно присваивает на каждом шаге итерации индекс текущего элемента массива или ключ переменной $key. В предыдущем примере массив $my_array содержит три элемента: $my_array[0] = “red”, $my_array[1] = “green”, и $my_array[2] = “blue”. В то время как переменная $value содержит значения элементов массива red, green и blue, переменная $key содержит индексы элементов массива 0, 1, и 2.

Мы приступаем к изучению основных элементов синтаксиса языка PHP.

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

В качестве примера решим задачу создания заготовки электронного письма. Ее смысл заключается в следующем.

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

5. Основной синтаксис

Первое, что нужно знать относительно синтаксиса PHP, – это то, как он встраивается в HTML-код, как интерпретатор узнает, что это код на языке PHP. В предыдущей лекции мы уже говорили об этом. Повторяться не будем, отметим только, что в примерах мы чаще всего будем использовать вариант <?php ?>, и иногда сокращенный вариант <? ?>.

6. Разделение инструкций

Программа на PHP (да и на любом другом языке программирования) – это набор команд (инструкций). Обработчику программы (парсеру) необходимо как-то отличать одну команду от другой. Для этого используются специальные символы – разделители. В PHP инструкции разделяются так же, как и в Cи или Perl, – каждое выражение заканчивается точкой с запятой.

Закрывающий тег «?>» также подразумевает конец инструкции, поэтому перед ним точку с запятой не ставят. Например, два следующих фрагмента кода эквивалентны:

7. Комментарии

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

Это важно при создании больших программ и в случае, если несколько человек работают над одной программой. При наличии комментариев в программе в ее коде разобраться гораздо проще. Кроме того, если решать задачу по частям, недоделанные части решения также удобно комментировать, чтобы не забыть о них в дальнейшем. Во всех языках программирования предусмотрена возможность включать комментарии в код программы. PHP поддерживает несколько видов комментариев: в стиле Cи, C++ и оболочки Unix. Символы // и # обозначают начало однострочных комментариев, /* и */ – соответственно начало и конец многострочных комментариев.

8. Использование комментариев в PHP

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

Важным элементом каждого языка являются переменные, константы и операторы, применяемые к этим переменным и константам. Рассмотрим, как выделяются и обрабатываются эти элементы в PHP.

Переменные

Переменная в PHP обозначается знаком доллара, за которым следует ее имя.

Например:

$my_var
Имя переменной чувствительно к регистру, т.е. переменные $my_var и $My_var различны.

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

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

8.1. Пример. Присваивание по значению

Результат работы этого скрипта будет следующим:

Переменная с именем first равна New text
Переменная с именем second равна Text

PHP 4, кроме этого, предлагает еще один способ присвоения значений переменным: присвоение по ссылке. Для того, чтобы присвоить значение переменной по ссылке, это значение должно иметь имя, т.е. оно должно быть представлено какой-либо переменной. Чтобы указать, что значение одной переменной присваивается другой переменной по ссылке, нужно перед именем первой переменной поставить знак амперсанд &.

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

8.2. Пример. Присваивание по ссылке

Этот скрипт выведет следующее:

Переменная с именем first равна New text.
Переменная с именем second равна New text.

То есть вместе с переменной $first изменилась и переменная $second.

9. Константы

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

Основное отличие константы от переменной состоит в том, что ей нельзя присвоить значение больше одного раза и ее значение нельзя аннулировать после ее объявления. Кроме того, у константы нет приставки в виде знака доллара и ее нельзя определить простым присваиванием значения. Как же тогда можно определить константу? Для этого существует специальная функция define(). Ее синтаксис таков:

define(«Имя_константы»,
«Значение_константы»,
[Нечувствительность_к_регистру])
По умолчанию имена констант чувствительны к регистру. Для каждой константы это можно изменить, указав в качестве значения аргумента

Нечувствительность_к_регистру значение True. Существует соглашение, по которому имена констант всегда пишутся в верхнем регистре.

Получить значение константы можно, указав ее имя. В отличие от переменных, не нужно предварять имя константы символом $. Кроме того, для получения значения константы можно использовать функцию constant() с именем константы в
качестве параметра.

9.1. Пример. Константы в PHP

Кроме переменных, объявляемых пользователем, о которых мы только что рассказали, в PHP существует ряд констант, определяемых самим интерпретатором. Например, константа FILE хранит имя файла программы (и путь к нему), которая выполняется в данный момент, FUNCTION содержит имя функции, CLASS – имя класса, PHP_VERSION – версия интерпретатора PHP. Полный список предопределенных констант можно получить, прочитав руководство по PHP.

10. Операторы

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

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

Переменные и константы – это основные и наиболее простые формы выражений.

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

Таблица. Арифметические операторы.

Обозначение Название Пример
+ Сложение $a + $b
Вычитание $a – $b
* Умножение $a * $b
/ Деление $a / $b
% Остаток от деления $a % $b

Таблица. Строковые операторы.

Обозначение Название Пример
. Конкатенация (сложение строк) $c = $a . $b (это строка, состоящая из $a и $b)

Таблица. Операторы присваивания.

Обозначение Название Описание Пример
= Присваивание Переменной слева от оператора будет присвоено значение, полученное в результате выполнения каких-либоопераций или переменной/константы с правой стороны $a = ($b = 4) +5; ($a будет равна 9, $b будет равна 4)
+= Сокращение Прибавляет к переменной число и затем присваивает ей полученное значение $a += 5; (эквивалентно $a = $a + 5;)
.= Сокращенно обозначает комбинацию операций конкатенации и присваивания (сначала добавляется строка, потом полученная строка записывается в переменную) $b = «Привет «;
$b .= «всем»;
(эквивалентно $b = $b
. «всем»;)
В результате:
$b=»Привет всем»

Таблица. Логические операторы

Обозначение Название Описание Пример
and И $a и $b истинны (True) $a and $b
&& И $a && $b
or Или Хотя бы одна из переменных $a или $b истинна (возможно, что и обе) $a or $b
|| Или $a || $b
xor Исключающее или Одна из переменных истинна. Случай, когда они обе истинны, исключается $a xor $b
! Инверсия (NOT) Если $a=True, то !$a=False и наоборот ! $a

Таблица. Операторы сравнения

Обозначение Название Описание Пример
== Равенство Значения переменных равны $a == $b
=== Эквивалентность Равны значения и типы переменных $a === $b
!= Неравенство Значения переменных не равны $a != $b
<> Неравенство $a <> $b
!== Неэквивалентность Переменные не эквивалентны $a !== $b
< Меньше $a < $b
Больше $a > $b
<= Меньше или равно $a <= $b
Больше или равно $a >= $b

Таблица. Операторы инкремента и декремента.

Обозначение Название Описание Пример
++$a Преинкремент Увеличивает $a на единицу и возвращает $a <?
$a=4;
echo «Должно быть 4:» .$a++;
echo «Должно быть 6:» .++$a;
?>
$a++ Постинкремент Возвращает $a, затем увеличивает $a на единицу
—$a Предекремент Уменьшает $a на единицу и возвращает $a
$a— Постдекремент Возвращает $a, затем уменьшает $a на единицу

11. Типы данных

PHP поддерживает восемь простых типов данных.
Четыре скалярных типа:

  • boolean (логический);
  • integer (целый);
  • float (с плавающей точкой);
  • string (строковый).

Два смешанных типа:

  • array (массив);
  • object (объект).

И два специальных типа:

  • resource (ресурс);
  • NULL.

В PHP не принято явное объявление типов переменных. Предпочтительнее, чтобы это делал сам интерпретатор во время выполнения программы в зависимости от контекста, в котором используется переменная. Рассмотрим по порядку все перечисленные типы данных.

12. Тип boolean (булев или логический тип)

Этот простейший тип выражает истинность значения, то есть переменная этого типа может иметь только два значения – истина TRUE или ложь FALSE.

Чтобы определить булев тип, используют ключевое слово TRUE или FALSE. Оба регистронезависимы.

12.1. Пример. Логический тип

Логические переменные используются в различных управляющих конструкциях (циклах, условиях и т.п., более подробно речь о них пойдет в одной из следующих лекций). Иметь логический тип, т.е. принимать только два значения, истину или ложь, могут также и некоторые операторы (например, оператор равенства). Они также используются в управляющих конструкциях для проверки каких-либо
условий. Например, в условной конструкции проверяется истинность значения оператора или переменной и в зависимости от результата проверки выполняются те или иные действия. Здесь условие может быть истинно или ложно, что как раз и отражает переменная и оператор логического типа.

12.2. Пример. Использование логического типа

13. Тип integer (целые)

Этот тип задает число из множества целых чисел Z = {…, -2, -1, 0, 1, 2, …}. Целые могут быть указаны в десятичной, шестнадцатеричной или восьмеричной системе счисления, по желанию с предшествующим знаком «-» или «+».

Если вы используете восьмеричную систему счисления, вы должны предварить число 0 (нулем), для использования шестнадцатеричной системы нужно поставить перед числом 0x.

Размер целого зависит от платформы, хотя, как правило, максимальное значение около двух миллиардов (это 32-битное знаковое). Беззнаковые целые PHP не поддерживает.

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

В PHP не существует оператора деления целых. Результатом 1/2 будет число с плавающей точкой 0.5. Вы можете привести значение к целому, что всегда округляет его в меньшую сторону, либо использовать функцию round(), округляющую значение по стандартным правилам. Для преобразования переменной к конкретному типу нужно перед переменной указать в скобках нужный тип. Например, для преобразования переменной $a=0.5 к целому типу необходимо написать (integer)(0.5) или (integer) $a или использовать сокращенную запись (int)(0.5). Возможность явного приведения типов по такому принципу существует для всех типов данных (конечно, не всегда значение одного типа можно перевести в другой тип). Мы не будем углубляться во все тонкости приведения типов, поскольку PHP делает это автоматически в зависимости от контекста.

14. Тип float (числа с плавающей точкой)

Числа с плавающей точкой (они же числа двойной точности или действительные числа) могут быть определены при помощи любого из следующих синтаксисов:

Размер числа с плавающей точкой зависит от платформы, хотя максимум, как правило, 1.8e308 с точностью около 14 десятичных цифр.

15. Тип string (строки)

Строка – это набор символов. В PHP символ – это то же самое, что байт, это значит, что существует ровно 256 различных символов. Это также означает, что PHP не имеет встроенной поддержки Unicode. В PHP практически не существует ограничений на размер строк, поэтому нет абсолютно никаких причин беспокоиться об их длине.

Строка в PHP может быть определена тремя различными способами:

  • с помощью одинарных кавычек;
  • с помощью двойных кавычек;
  • heredoc-синтаксисом.

16. Одинарные кавычки

Простейший способ определить строку – это заключить ее в одинарные кавычки «’». Чтобы использовать одинарную кавычку внутри строки, как и во многих других языках, перед ней необходимо поставить символ обратной косой черты «», т. е. экранировать ее. Если обратная косая черта должна идти перед одинарной кавычкой либо быть в конце строки, необходимо продублировать ее «\’».

Если внутри строки, заключенной в одинарные кавычки, обратный слэш «» встречается перед любым другим символом (отличным от «» и «’» ), то он рассматривается как обычный символ и выводится, как и все остальные. Поэтому обратную косую черту необходимо экранировать, только если она находится в конце строки, перед закрывающей кавычкой.

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

16.1. Пример. Использование управляющих последовательностей

17. Двойные кавычки

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

Некоторые из них приведены в таблице.
Таблица. Управляющие последовательности.

Последовательность Значение
n Новая строка (LF или 0x0A (10) в ASCII)
r Возврат каретки (CR или 0x0D (13) в ASCII)
t Горизонтальная табуляция (HT или 0x09 (9) в ASCII)
\ Обратная косая черта
$ Знак доллара
« Двойная кавычка

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

Самым важным свойством строк в двойных кавычках является обработка переменных.

Heredoc

Другой способ определения строк – это использование heredoc-синтаксиса. В этом случае строка должна начинаться с символа <<<, после которого идет идентификатор. Заканчивается строка этим же идентификатором. Закрывающий идентификатор должен начинаться в первом столбце строки. Кроме того, идентификатор должен соответствовать тем же правилам именования, что и все остальные метки в PHP: содержать только буквенно-цифровые символы и знак подчеркивания и начинаться не с цифры или знака подчеркивания.

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

Переменные внутри heredoc тоже обрабатываются.

Пример. Использование heredoc-синтаксиса
Замечание: Поддержка heredoc была добавлена в PHP 4.

18. Тип array (массив)

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

Определить массив можно с помощью конструкции array() или непосредственно задавая значения его элементам. Определение при помощи
array() array ([key] => value,
[key1] => value1, … )

Языковая конструкция array() принимает в качестве параметров пары ключ => значение, разделенные запятыми. Символ => устанавливает соответствие между значением и его ключом. Ключ может быть как целым числом, так и строкой, а значение может быть любого имеющегося в PHP типа. Числовой ключ массива часто называют индексом. Индексирование массива в PHP начинается с нуля.

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

Поэтому запись $a[«1»] равносильна записи $a[1], так же как и $a[«-1»] равносильно $a[-1].

18.1. Пример. Массивы в PHP

Если для элемента ключ не задан, то в качестве ключа берется максимальный числовой ключ, увеличенный на единицу. Если указать ключ, которому уже было присвоено какое-то значение, то оно будет перезаписано. Начиная с PHP 4.3.0, если максимальный ключ – отрицательное число, то следующим ключом массива будет ноль (0).

www.webmasterwiki.ru

I find it often clearer to set a simple flag ($finished) to false at the start of the loop, and have the program set it to true when it's finished doing whatever it's trying to do. Then the code is more self-documenting: WHILE NOT FINISHED keep going through the loop. FINISHED EQUALS TRUE when you're done. Here's an example. This is the code I use to generate a random filename and ensure that there is not already an existing file with the same name. I've added very verbose comments to it to make it clear how it works:

<?php
$finaldir
= 'download';

$finished = false;                       // we're not finished yet (we just started)
while ( ! $finished ):                   // while not finished
 
$rn = rand();                          // random number
 
$outfile = $finaldir.'/'.$rn.'.gif';   // output file name
 
if ( ! file_exists($outfile) ):        // if file DOES NOT exist...
   
$finished = true;                    // ...we are finished
 
endif;
endwhile;                               
// (if not finished, re-start WHILE loop)
?>

php.net

Что такое цикл в PHP

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

Цикл — это блок кода, который повторяет определённое действие (инструкцию), пока не будет выполнено условие. Например, выводить строку Привет, мир! пока количество действий (выводов строки) не достигнет 5. Каждое подобное исполнение (одно и более повторений) называется итерацией.

Код PHP

<?php   // переменные, с которыми будем работать   $num = 1;    $hello = "Привет, мир!";      // начинаем цикл      while ($num <= 5) {         echo "$hellon";             echo "Итерация номер: $numn";            $num++; // Внимание! Тут увеличиваем количество показов. Теперь +1     // И снова возвращаемся в начало цикла. Проверять, не достигло ли $num значения 5     // Если $num не увеличивать с каждым ходом цикла, то цикл будет бесконечным!     }   ?>

Демонстрация Скачать исходники

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

Программный код цикла будет выполняться действие до тех пор, пока условие в цикле не вернёт FALSE. После этого исполнение кода со строки, расположенной уже после цикла. Иногда, по ошибке, можно сделать цикл, который не будет иметь логического конца и всегда будет TRUE. Такой цикл называют — бесконечным. Чтобы избежать создания подобного некорректного цикла следует внимательно проработать условие.

Цикл с предусловием while

В цикле while есть предусловие, которое при возвращении TRUE выполняет действие в теле цикла и возвращается к предусловию. Цикл работает до тех пор, пока предусловие не вернёт FALSE.

Логика цикла

while (логическое выражение)  инструкция;

В качестве тела цикла выступает инструкция. В теле может содержатся один или несколько операторов. Перейдём к примеру.

Код PHP

<?php   // переменные, с которыми будем работать   $num = 1;      // начинаем цикл      while ($num <= 5) {         echo "$num";                $num++; // Внимание! Тут увеличиваем количество показов. Теперь +1     // И снова возвращаемся в начало цикла. Проверять, не достигло ли $num значения 5     // Если $num не увеличивать с каждым ходом цикла, то цикл будет бесконечным!     }     // Выведет "12345"  ?>

Демонстрация Скачать исходники

Цикл с постусловием do while

Данный цикл похож в своей работе на while, но отличается только тем, что проверка условия проходит после проработки инструкции (действия). То есть как минимум цикл проработает 1 раз.

Логика цикла

do  {  тело цикла;  }  while (логическое выражение);

Теперь прошлый пример рассмотрим через цикл do while.

Код PHP

<?php   // переменные, с которыми будем работать   $num = 1;      // начинаем цикл    do {      echo "$num";             $num++;    } while ($num <= 5);    // Выведет "12345"  ?>

Как видите, результат получился тот же самый. Однако, если переменная $num сразу будет не соответствовать условию, например, будет равно 11, то 1 раз цикл всё равно проработает. Данный цикл используется редко, но всё же подобная конструкция востребована.

Цикл со счетчиком for

Цикл for также как все другие циклы выполняет действие определённое количество раз. Однако отличается сложной конструкцией, количеством аргументов и сравнительно большими возможностями.

Логика цикла

for (инициализирующие команды; условие; команды после итерации) {   тело_цикла;   }

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

Код PHP (несколько примеров)

<?php  for ($x=0; $x<10; $x++) echo $x;  // Выводит 0123456789    // можно совместить условие и команды после итерации  for ($y=0; $y++<10;) echo $y;  // Выводит 12345678910    // можно задать несколько переменных, условий, команд.  // Но они должны быть через запятую!  for ($a=0, $b=0; $a<10; $a++, $b++) echo $a;  // Выводит 0123456789    // Любопытный пример  for($c=0,$d=0,$t="Zzz"; $c<10; $d++,$с+=$d) {   $t=$t.".";   echo $t;   }  // Выводит Zzz.Zzz..Zzz...Zzz....  ?>

Цикл перебора массивов foreach

Данный вид цикла используется для обработки массивов. Появился с PHP 4.

Логика цикла

foreach (массив as $ключ=>$значение)  команды;

Команды циклически выполняются для каждого элемента массива, при этом очередная пара ключ=&gt;значение оказывается в переменных $ключ и $значение. Пример работы цикла foreach:

<?php  $capitals["Россия"] = "Москва";  $capitals["Украина"] = "Киев";  $capitals["Беларусь"] = "Минск";  $capitals["Казахстан"] = "Астана";  foreach ($capitals as $key => $value) {  echo "<p>$value - $key</p>";  }  ?>

Демонстрация Скачать исходники

Код выведет следующее:

Москва — Россия
Киев — Украина
Минск — Беларусь
Астана — Казахстан
Но можно вывести только значения. Смотрим пример ниже

<?php  $capitals["Россия"] = "Москва";  $capitals["Украина"] = "Киев";  $capitals["Беларусь"] = "Минск";  $capitals["Казахстан"] = "Астана";    foreach ($capitals as $value) {  echo "$value ";  }  ?>

Код будет выведено так:

Москва Киев Минск Астана

Демонстрация Скачать исходники

Конструкция break

Периодически бывает, что нужно усложнить логику цикла и в какие-то его моменты, при определённом значении, выполнить дополнительные действия. Для таких случаев есть конструкция break, которая осуществляет выход из цикла. У неё есть один необязательный параметр — число, указывающее определённую вложенность цикла, то есть когда конструкция будет запущена. По умолчанию он равен 1, то есть при упоминании сразу действие цикла остановится.

Пример конструкции break:

<?php  $x=0;    while ($x++<10) {    if ($x==3) break;    echo "<p>$x</p>";  }  // Когда $x равен 3, цикл прерывается    // выведет "12"  ?>

Демонстрация Скачать исходники

Конструкция continue

Конструкция continue нужна для немедленного прекращения текущей итерации цикла и переходу к следующей (если в цикле подразумевается предусловие). Как и для break, можно указать условие вложенности цикла, при котором конструкция вступит в действие.

Пример конструкции break:

<?php  $a=0;    while ($a++<5) {    if ($a==3) continue;    echo "$a";  }  // Цикл пропустит третью итерацию    // Выведет "1245" Значение 3 будет пропущено.  ?>

Демонстрация Скачать исходники

Конструкция goto

goto — оператор безусловного перехода. При упоминании goto и названия метки идёт поиск самой метки, куда нужно перейти. Сама метка ставится после оператора и имеет вид название: .

Синтаксис

  goto название_метки; // указываем желаемую метку    echo 'hello';        название_метки:  // место перехода    echo 'world';

Пример goto

<?php   $a = 0;       for ($a = 0; $a < 10; $a++) {      if ($a == 5)  // если значение переменной $a равно 5        goto end;  // то переходим к выполнению инструкций следующих за меткой         echo "$a";    }    echo 'после цикла - до метки';  // инструкция не будет выполнена         end:    echo 'После метки';  ?>

Демонстрация Скачать исходники

Спасибо за внимание и удачи в изучении php!

tradebenefit.ru

Цикл while

Цикл while является простейшим видом цикла в PHP. Его синтаксис:

синтаксис цикла while в PHP

Ниже приводится пример цикла while, тело которого исполняется 10 раз:

  <?php     $num = 1;      while ($num <= 10) {   echo "Итерация номер: $num<br>n";  	  	$num++;   }    ?>  

Перед началом цикла значение переменной $num устанавливается равным 1 (значение может быть любым). Это называется инициализацией переменной-счетчика. Каждый раз, когда исполняется тело цикла, с помощью инкремента $num++ значение переменной $num увеличивается на единицу. Значение выражения ($num <= 10) проверяется каждый раз перед итерацией цикла. После десяти итераций условное выражение вернет значение FALSE (так как значение переменной $num уже будет не меньше или равно 10) и работа цикла прекратится. В том случае, если условное выражение while будет равно FALSE с самого начала, тело цикла ни разу не будут выполнено.

Большинство циклов имеют переменные-счетчики, аналогичные $num. Чаще всего в качестве счетчиков цикла выступают переменные с именами i, j и k, хотя для того чтобы сделать программный код более понятным, следует давать счетчикам более наглядные имена.

Цикл do while

Цикл do while очень похож на цикл while, с тем отличием, что условное выражения проверяется в конце итерации, а не в начале. Синтаксис этого цикла:

синтаксис цикла do while в PHP

Между циклом do while и обычным циклом while имеется два отличия. Во-первых, цикл do while требует как ключевого слова do (для отметки начала цикла), так и ключевого слова while (для отметки конца цикла и указания условия). Во-вторых, в отличие от цикла while, цикл do while завершается точкой с запятой. Данная разновидность цикла полезна, когда тело цикла должно быть исполнено хотя бы один раз, независимо от значения условного выражения.

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

  <?php     $num = 1;     do {   echo "Итерация номер: $num<br>n";  	  	$num++;   } while ($num <= 10);     ?>  

puzzleweb.ru


You May Also Like

About the Author: admind

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

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

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

Adblock
detector