Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Поддержка баз данных в PHP




Управляющие конструкции

 

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

 

Управляющие конструкции обычно проверяют условия на истинность или ложность, и в зависимости от результата проверки выполняется то или иное действие. Рассмотрим выражение $а == $b. Это выражение истинно, если $а равно $b, и ложно в противном случае. Результат истинного выражения считается равным 1, а результат ложного выражения равен 0. Рассмотрим следующий фрагмент:

 

$а = 5;

$b = 5;

print $а == $b;

 

В результате выводится значение 1. Если изменить $а или $Ь и присвоить переменной значение, отличное от 5, выводится 0.

 

if

 

Команда if представляет собой разновидность команды выбора, которая вычисляет значение выражения и в зависимости от того, будет ли полученный результат истинным или ложным, выполняет (или не выполняет) блок программного кода. Существует две общих формы команды i f:

 

if (выражение)

{

блок

}

 

и

 

if (выражение)

{

блок

}

else

{

блок

}

 

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

 

if ($cooking_weight < 200)

{

print "This is enough pasta (< 200g) for 1-2 people";

}

else

{

print "That's a lot of pasta. Having a party perhaps?";

}

 

Если в результате проверки условия выполняется всего одна команда, фигурные скобки не обязательны:

 

if ($cooking_weight < 100)

print "Are you sure this is enough?";

 

Elseif

 

Команда elseif добавляет в управляющую конструкцию if дополнительный уровень проверки и увеличивает количество условий, на основании которых принимается решение:

 

if (выражение)

{

блок

}

elseif (выражение)

{

блок

}

 

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

 

if ($cooking_weight < 200)

{

print "This is enough pasta (< 200g) for 1-2 people";

}

elseif ($cooking_weight < 500)

{

print "That's a lot of pasta. Having a party perhaps?";

}

}

else

{

print "Whoa! Who are you cooking for,a football team?";

}

 

Вычисление нескольких условий

 

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

 

if (($cooking_weight > 0) && ($cooking_weight < 200))

{

print "This is enough pasta (< 200g) for 1-2 people";

}

 

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

 

While

 

Конструкция while предназначена для многократного (циклического) выполнения блока команд. Блок команды while выполняется до тех пор, пока условие цикла остается истинным. Общая форма цикла while выглядит так:

 

while (выражение):

блок

endwhile;

 

Рассмотрим использование цикла while на примере вычисления факториала (n!), где n = 5:

 

$n = 5;

$nсору = $n;

$factorial = 1; // Установить начальное значение факториала

 

while ($n > 0):

$factorial - $n * $factorial;

$n--; // Уменьшить $n на 1

endwhile;

 

print "The factorial of $ncopy is $factorial.";

 

Программа выводит следующий результат:

 

The factorial of 5 is 120.

 

В этом примере $n уменьшается в конце каждой итерации. Условие цикла не должно быть истинным в тот момент, когда переменная $n станет равна 0, поскольку величина $factorial умножится на 0 -- конечно, этого быть не должно.

 

Do..while

 

Цикл do..while работает почти так же, как и цикл while, описанный в предыдущем разделе, однако в do..while условие проверяется не в начале, а в конце каждой итерации. Учтите, что цикл do..while всегда выполняется хотя бы один раз, а цикл while может вообще не выполняться, если перед входом в цикл условие окажется ложным:

 

 

do:

блок

while (выражение);

 

Давайте пересмотрим пример с вычислением факториала и перепишем его с использованием конструкции do..while:

 

$n = 5:

$ncopy = $n;

$factorial = 1; //Установить начальное значение факториала

do

{

$factorial = $n * $factorial;

$n--: // Уменьшить Sn на 1

}

while (Sn > 0);

 

print "The factorial of Sncopy is $factorial.";

 

При выполнении этого примера будет получен тот же результат, что и при выполнении его прототипа из предыдущего раздела.

 

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

For

 

Цикл for обеспечивает еще одну возможность многократного выполнения блоков. Он отличается от цикла while только тем, что условие изменяется в самой управляющей конструкции, а не где-то внутри блока команд. Как и в случае с циклом while, цикл выполняется до тех пор, пока проверяемое условие остается истинным. Общая форма конструкции for выглядит так:

 

for (инициализация: условие; приращение)

{

блок

}

 

Условная часть цикла for в действительности состоит из трех компонентов. Инициализация выполняется всего один раз и определяет начальное значение управляющей переменной цикла. Условие проверяется в начале каждой итерации и определяет, должна ли выполняться текущая итерация или нет. Наконец, приращение определяет изменение управляющей переменной при каждой итерации. Возможно, термин «приращение» в данном случае неточен, поскольку переменная может как увеличиваться, так и уменьшаться в соответствии с намерениями программиста. Следующий пример демонстрирует простейший случай применения цикла for:

// Обратная косая черта предотвращает возможную интерполяцию переменной $1

for ($i = 10; $1 <- 50: $1 +=10):

print "\$i = $i <br>"; endfor

 

Выполнение этого фрагмента дает следующий результат:

 

$i = 10

$i = 20

$i = 30

$i = 40

$i - 50

 

В этом примере управляющая переменная $i инициализируется значением 10. Условие заключается в том, что цикл продолжается до тех пор, пока $i не достигнет или не превысит пороговую величину 100. Наконец, при каждой итерации значение $i увеличивается на 10. В результате команда print выполняется 10 раз, каждый раз выводя текущее значение $i. Обратите внимание: для увеличения $i на 10 используется оператор сложения с присваиванием. Для этого есть веские причины, поскольку циклы for в PHP не поддерживают более традиционной записи $i = $i + 10.

 

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

 

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

 

Foreach

 

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

 

foreach (массив as $элемент)

{

блок

}

 

foreach (массив as $ключ => $элемент)

{

блок

}

 

Например, при выполнении следующего фрагмента:

 

$menu = аrrау("pasta", "steak", "potatoes", "fish", "fries");

foreach ($menu as $item)

{

print "$item <BR>";

}

 

будет выведен следующий результат:

 

pasta

steak

potatoes

fish

fries

 

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

 

Switch

 

Принцип работы конструкции switch отчасти напоминает if -- результат, полученный при вычислении выражения, проверяется по списку потенциальных совпадений.

Это особенно удобно при проверке нескольких значений, поскольку применение switch делает программу более наглядной и компактной. Общий формат команды switch:

 

switch (выражение)

{

case (условие):

блок

case (условие):

блок

...

default:

блок

}

 

Проверяемое условие указывается в круглых скобках после ключевого слова switch. Результат его вычисления последовательно сравнивается с условиями в секциях case. При обнаружении совпадения выполняется блок соответствующей секции. Если совпадение не будет обнаружено, выполняется блок необязательной секции default.

 

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

 

Break

 

Команда break немедленно прерывает выполнение той конструкции while, for или switch, в которой она находится. Эта команда уже упоминалась в предыдущем разделе, однако прерывание текущего цикла не исчерпывает возможностей команды break. В общем виде синтаксис break выглядит так:

 

break n;

Continue

Остается рассмотреть еще одну управляющую конструкцию PHP -- continue. При выполнении команды continue в цикле пропускаются все оставшиеся команды текущей итерации и немедленно начинается новая итерация. Синтаксис команды continue в общем виде:

continue n;

 

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

 

 

Функции

 

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

 

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

 

Определение функции обычно состоит из трех частей:

· имени функции;

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

· тела функции, заключенного в фигурные скобки.

 

Обобщенный синтаксис функций PHP выглядит так:

 

function имя_функции ([$параметр1. $параметр2,.... $параметрn])

{

тело функции

}

 

Имя функции должно подчиняться условиям идентификаторов. После имени функции следуют обязательные круглые скобки, в которые заключается необязательный список входных параметров ($параметр1, $параметр2,.... $параметрn). Вследствие относительно либеральных принципов определения переменных в PHP указывать тип входных параметров не нужно. Хотя такой подход имеет свои преимущества, следует помнить, что механизм PHP не проверяет аргументы на соответствие тем типам, которые должны обрабатываться функцией. Случайные ошибки в использовании входных параметров могут привести к неожиданным последствиям (чтобы убедиться в том, что параметр относится к нужному типу, можно проверить его стандартной функцией gettype()). После закрывающей круглой скобки следуют фигурные скобки, в которые заключается программный код, ассоциируемый с именем функции.

 

Функции можно вызывать внутри других функций -- по аналогии с тем, как одна управляющая конструкция (if, while, for и т. д.) может находиться внутри другой. Такая возможность удобна в любых программах, и в больших, и в малых, поскольку она увеличивает степень модульности приложения и упрощает сопровождение программы.

 

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

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

 

 

Тема 2. Функции PHP для работы с СУБД

 

1. Подключение к БД

 

Поддержка баз данных в PHP

Средства эффективного хранения и выборки больших объемов информации внесли огромный вклад в успешное развитие Интернета. Обычно для хранения информации используются базы данных. Работа таких известных сайтов, как Yahoo, Amazon и Ebay, в значительной степени зависит от надежности баз данных, хранящих громадные объемы информации. Конечно, поддержка баз данных ориентирована не только на интересы гигантских корпораций - в распоряжении web-программистов имеется несколько мощных реализаций баз данных, распространяемых по относительно низкой цене (а то и бесплатно).

Правильная организация базы данных обеспечивает более быстрые и гибкие возможности выборки данных. Она существенно упрощает реализацию средств поиска и сортировки, а проблемы прав доступа к информации решаются при помощи средств контроля за привилегиями, присутствующими во многих системах управления базами данных (СУБД). Кроме того, упрощаются процессы репликации и архивации данных.

В PHP реализована обширная поддержка практически всех существующих серверов баз данных, в том числе: Adabas D, Informix, PostgreSQL, Dbase, Ingres, Solid, Direct MS-SQL, InterBase, Sybase, Empress, mSQL, UNIX dbm, File-Pro (read-only), MySQL, Velods, FrontBase, ODBC, IBM DB2, Oracle (OCI7 и OC18).

 

MySQL

 

MySQL - надежная СУБД на базе SQL, разработанная и сопровождаемая фирмой Т.с.Х DataKonsultAB (Стокгольм, Швеция). Начиная с 1995 года, MySQL стала одной из самых распространенных СУБД в мире, что отчасти обусловлено ее скоростью, надежностью и гибкой лицензионной политикой.

Благодаря хорошим характеристикам и обширному набору стандартных интерфейсных функций, очень простых в использовании, MySQL стала самым популярным средством для работы с базами данных в PHP.

 

Установка

 

Одна из причин популярности MySQL среди пользователей PHP заключается в том, что поддержка этого сервера автоматически включается в поставку PHP. Таким образом, вам остается лишь проследить за правильной установкой пакета MySQL. СУБД MySQL совместима практически с любой серьезной операционной системой, включая FreeBSD, Solaris, UNIX, Linux и различные верии Windows.

 

Настройка MySQL

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

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

После успешной установки и настройки пакета MySQL можно начинать эксперименты с базами данных в среде Web.

 

2. Подключение к БД

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...