Операторы
Оператор ifимеет два формата:
if (условие) оператор [else оператор];
Если условие истинно, то выполняется оператор после этого условия, иначе – оператор после else.
if (условие) оператор;
[elseif (условие) оператор;]
….
[elseif (условие) оператор;
[else оператор;]
Очередное условие elself вычисляется лишь в том случае, если все предшествующие условия if и elself оказались ложными.
Пример.
if ($ves < 200) print "вес 1-2 людей";
elseif ($ves < 500) print "вес маленькой группы людей";
else print "вес большой группы людей";
Допускаются вложенные команды if.
Оператор цикла whileвыглядит так:
while (условие выполнения цикла) оператор;
Пример. Вычисление факториала (n!), где n = 5:
$n = 5; $nсору = $n; $factorial = 1; факториала
while ($n >1) {$factorial = $n * $factorial; $n--; }
print $factorial;
Оператор цикла Dо While:
do оператор; while(условие);
Команда работает почти так же, как и цикл while, однако условие проверяется не в начале, а в конце каждой итерации.
Пример с вычислением факториала:
$n = 5; $ncopy = $n; $factorial = 1; // Установить начальное значение
do { $factorial = $n * $factorial; $n--;} while ($n > 0);
Оператор цикла forимеет вид:
for (инициализация; условие; приращение) оператор;
Инициализация – операторычерез запятые, которые выполняются всего один раз перед выполнением цикла (обычно они определяют начальные значения управляющей переменной цикла и других переменных).
Условие проверяется в начале каждой итерации и определяет, должна ли выполняться текущая итерация (если устовие истинно) или нет.
Приращение - операторычерез запятые, которые выполняются в конце каждой итерации цикла (обычно определяется изменение управляющей переменной при каждой итерации).
Пример.
for ($i = 10; $i <= 100; $i +=10) // Обратная косая черта предотвращает
print "\$i = $i <br>"; // возможную интерполяцию переменной $1
В этом примере управляющая переменная $i инициализируется значением 10. Цикл продолжается до тех пор, пока $i не достигнет или не превысит пороговую величину 100. При каждой итерации значение $i увеличивается на 10. В результате команда print выполняется 10 раз, каждый раз выводя текущее значение $i. В управляющих выражениях циклов for могут отсутствовать любые компоненты.
Оператор foreachпредставляет собой разновидность for, включенную в язык для упрощения перебора элементов массива. Существуют две разновидности команды foreach, предназначенные для разных типов массивов:
foreach (массив as $элемент) оператор;
foreach (массив as $ключ -> $элемент) оператор;
Пример.
$menu = array ("pasta", "steak", "potatoes", "fish", "fries");
foreach ($menu as $item) print "$item <BR>";
Второй вариант используется при работе с ассоциативными массивами:
$wine_inventory = array ("merlot" -> 15, "zinfandel" -> 17,"sauvignon" -> 32);
foreach ($wine_inventory as $i -> $item_count)
print "$item_count bottles of $i remaining<BR>";
В этом случае результат выглядит так:
15 bottles of merlot remaining
17 bottles of zinfandel remaining
32 bottles of sauvignon remaining
Оператор switchимеет:
switch (выражение)
case (условие): оператор;
[case (условие): оператор;]
...
[default: оператор;]
}
Пример.
$ves=800;
switch ($ves)
{case ($ves < 200): print "вес 1-2 людей";
case ($ves < 500): print "вес маленькой группы людей";
default: print "вес большой группы людей";
}
Проверяемое условие указывается в круглых скобках после ключевого слова switch. Результат его вычисления последовательно сравнивается с условиями в секциях case. При обнаружении совпадения выполняется блок соответствующей секции. Если совпадение не будет обнаружено, выполняется блок необязательной секции default.
Оператор break[n] немедленно прерывает выполнение операторов циклов и switch . Необязательный параметр n определяет количество уровней управляющих конструкций, завершаемых командой break.
Оператор continue[n] предназначена пропуска всех оставшихся команд текущей итерации цикла и немедленно начинается новая итерация. Необязательный параметр n указывает, на сколько уровней внешних циклов распространяется действие continue.
2.4. Функции
Функции могут создаваться в любой точке программ РНР. Обобщенный синтаксис функций РНР выглядит так:
functionимя_функции ([$параметр1. $параметр2, .... $параметрn])
{тело функции}
В РНР указывать тип входных параметров не нужно. Тип параметра можно проверить функцией gettype ( ).
Функции можно вызывать внутри других функций.
Допускается объявление функций внутри других функций. Вложенная функция не наследует параметров родительской функции; параметры должны передаваться ей точно так же, как и любой другой функции. Вложенные функции не могут вызываться до вызова своей родительской функции.
По завершении работы функции командой return N можно вернуть некоторое значение N. Функции могут возвращать значения любых типов, в том числе массивы и списки.
Пример: функция calculate_cost( ) вычисляет налог с заданной суммы и возвращает общую сумму вместе с налогом.
$price = 24.99; $tax = .06;
function calculate_cost($tax, $price) {return $price + ($price * $tax);}
print calculate_cost($tax, $price);
Функции, не возвращающие значений, также называются процедурами.
Функция также может возвращать сразу несколько значений при помощи списка.
Функция может использоваться в качестве операнда в выражениях
Рекурсивная функциямногократно вызывает сама себя, пока не будет выполнено некоторое условие.
Пример.Cуммирование последовательных целых чисел.
function summation ($count)
{ if ($count != 0) return $count + summation($count-1);}
$sum = summation(10); print "Сумма = $sum";
Тексты разработанных функций можно поместить в отдельный файл-библиотеку функций. Для включения текстов этих функций можно использовать операторы вида:
include ("путь/имя_файла"); или require ("путь/имя_файла");
2.5. Массивы
Массив представляет собой совокупность объектов, имеющих одинаковые размер и тип. Каждый объект в массиве называется элементом массива. При объявлении индексируемого массива после имени переменной ставится пара квадратных скобок ([ ]): $languages [ ] = "Русский";
При создании массивов используются три функции.
array( [элемент1, элемент2...] ) -получает ноль или более элементов и возвращает массив, состоящий из указанных элементов.
Пример. $languages = array ("English". "Gaelic". "Spanish");
void list(переменная1 [, переменная2 , ...] ) -похожа на аrrау(), однако ее главная задача — одновременное присваивание значений, извлеченных из массива, сразу нескольким переменным. Синтаксис функции:
Пример.
$fio="Иванов Иван Иванович";
list ($name, $imj, $othestvo) = split(" ",$fio);
echo "Фамилия - ", $name, " Имя - ", $imj, " Отчество - ", $othestvo;
array range(int нижняя_граница, int верхняя граница) - позволяет легко и быстро создать массив целых чисел из интервала, определяемого верхней и нижней границами. Range( ) возвращает массив, состоящий из всех целых чисел указанного интервала.
Пример: $lottery = range(0,9);
Особое место занимаюь системные массивы $_POST[имя поля] и $_GET[имя поля] содержит полученные значения полей ввода заполненой пользователем формы и переданных методом POST или GET соответственно на сервер PHP-программе обработки полученных значений полей ввода (пп. 3.2-3.4)
Приведем список основных функции работы с массивами.
bool in_array(mixed элемент, array массив)- проверяет, присутствует ли в массиве заданный элемент. Если поиск окажется удачным, функция возвращает TRUE, в противном случае возвращается FALSE.
array array_keys(array массив [, mixed искомый_элемент]) - возвращает массив, содержащий все ключи исходного массива, переданного в качестве параметра. Если при вызове передается дополнительный параметр искомый_элемент, возвращаются только ключи, которым соответствует заданное значение; в противном случае возвращаются все ключи массива.
array array_values(array массив)- возвращает массив, состоящий из всех значений исходного массива, переданного в качестве параметра.
int array_push(array массив, mixed элемент [, ...]) -присоединяет (то есть дописывает в конец массива) один или несколько новых элементов.
аrrау_рор(аrrау массив) - извлекает и последний элемент из массива. Извлеченный элемент возвращается функцией.
array_shift(array массив) - аналогична аrrау_рор( ) с одним отличием: элемент удаляется из начала (левого края) массива. Все остальные элементы массива сдвигаются на одну позицию к началу массива.
int array_unshift(array массив, mixed переменная1 [....переменная2]) -новый элемент вставляется в начало массива, а остальные элементы сдвигаются на одну позицию вправо. При одном вызове функции можно добавить как один, так и несколько элементов.
Пример добавления нескольких элементов:
$languages = array("French", "Italian", "Spanish");
array_unshift($languages, "Russian", "Swahili", "Chinese");
array arrap_pad(array массив, int размер, mixed значение) - позволяет быстро увеличить массив до желаемого размера посредством его дополнения стандартными элементами. Параметр размер определяет новую длину массива. Параметр значение задает стандартное значение, присваиваемое элементам во всех новых позициях массива. Если размер положителен, массив дополняется справа, а если отрицателен — слева. Если абсолютное значение параметра размер меньше либо равно длине массива, никаких действий не выполняется.
Пример дополнения массива с конца:
$weights = array(1, 3, 5, 10, 15, 25, 50);
$weights = array_pad($weights. 10, 100);
// Результат: $weights = array(1, 3, 5, 10, 15, 25, 50, 100, 100, 100);
Пример дополнения массива с начала:
$weights = array(1, 3, 5, 10, 15, 25, 50);
$weights = array_pad($weights, -10, 100);
// Результат: $weights = array(100, 100, 100, 1, 3, 5, 10, 15, 25, 50);
mixed reset(array массив) - переводит внутренний указатель текущей позиции в массиве к первому элементу. Кроме того, она возвращает значение первого элемента.
array each(array массив) - при каждом вызове выполняет две операции: она возвращает пару «ключ/значение», на которую ссылается указатель текущей позиции, и перемещает указатель к следующему элементу.
end(array массив) - перемещает указатель к позиции последнего элемента массива.
mixed next(array массив) - смещает указатель на одну позицию вперед, после чего возвращает элемент, находящийся в новой позиции. Если в результате смещения указатель выйдет за пределы массива, next ( ) возвращает ложное значение. Недостаток функции заключается в том, что ложное значение dозвращается и для существующих, но пустых элементов массива. Если вы хотите провести обычный перебор, воспользуйтесь функцией each( ).
mixed prev(array массив) - аналогична next ( ) за одним исключением: указатель смещается на одну позицию к началу массива, после чего возвращается элемент, находящийся в новой позиции. Если в результате смещения указатель окажется перед первым элементом массива, prev( ) вернет ложное значение. Недостаток функции prev( ) заключается в том, что ложное значение возвращается и для существующих, но пустых элементов массива. Если вы хотите провести обычный перебор, воспользуйтесь функцией each( ).
int sizeof(array массив) - возвращает количество элементов в массиве.
int count(mixed переменная) - возвращает количество значений, содержащихся в массиве. Единственное различие между sizeof ( ) и count( ) заключается в том, что в некоторых ситуациях count ( ) возвращает дополнительную информацию: если переменная существует, но не является массивом, функция возвращает значение 1; если переменная не существует, возвращается значение 0.
array array_count_values(array массив) - подсчитывает количество экземпляров каждого значения в массиве.
void sort(array массив) - сортирует элементы массива по возрастанию (от меньших к большим). Нечисловые элементы сортируются в алфавитном порядке в соответствии с ASCII-кодами. е.
rsort(array массив ) - сортирует элементы массива в обратном порядке.
array array_merge(array массив1, array массив2, ..., array массивN]) - сливает от 1 до N массивов, объединяя их в соответствии с порядком перечисления в параметрах.
array array_slice(array массив, int смещение [, int длина]) - возвращает часть массива, начальная и конечная позиция которой определяется смещением от начала и необязательным параметром длины.
Значения параметров задаются по определенным правилам:
array_splice(array входной_массив, int смещение, [int длина], [array заменяющий_массив]) -заменяет часть массива, определяемую начальной позицией и необязательной длиной, элементами необязательного параметра-массива.
Примеры.
$pasta = array_splice($pasta. 5, 2); // Удаление 5 и 6 элементов:
//Замена пятого и шестого элементов новыми значениями:
$pasta = array_splice($pasta, 5, 2, array("element1", "element2"));
//Удаление всех элементов, начиная с пятого, до третьего элемента с конца массива:
$pasta = array_splice($pasta, 5, -3);
void shuffle(array массив) - сортирует элементы массива в случайном порядке.
2.6. Объектно-ориентированное программирование
Дата добавления: 2015-04-15; просмотров: 714;