Реферат: Вводный курс в PHP

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ РФ

Сибирский институт права экономики и управления

Факультет: Компьютерных технологии и информационных систем

Специальность «прикладная информатика в экономике»

ДОКЛАД

По дисциплине «Мировые информационные ресурсы»

Тема: «Вводный курс в PHP»

Выполнил:

Студент ПИ-04

Проверил:

Ангарск 2008 г


Переменные

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

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

После того, как запрос клиентапроанализирован веб-сервером и передан РНР машине, последняя устанавливает рядпеременных, которые содержат данные, относящиеся к запросу и доступны все времяего выполнения. Сначала РНР берет переменные окружения Вашей системы и создаетпеременные с теми же именами и значениями в окружении сценария РНР для тогочтобы сценариям, расположенным на сервере были доступны особенности системыклиента. Эти переменные помещаются в ассоциативный массив $HTTP_ENV_VARS

Естественно, что переменныемассива $HTTP_ENV_VARS являются системно зависимыми (поскольку это фактическипеременные окружения). Посмотреть значения переменных окружения для Вашеймашины Вы можете при помощи команды env (Unix) или set (Windows).

Затем РНР создает группуGET-переменных, которые создаются при анализе строки запроса. Строка запросахранится в переменной $QUERY_STRING и представляет собой информацию, следующуюза символом "? " в запрошенном URL. РНР разбивает строку запроса посимволам & на отдельные элементы, а затем ищет в каждом из этих элементовзнак "=". Если знак "=" найден, то создается переменная сименем из символов, стоящих слева от знака равенства. Рассмотрим следующуюформу:

<form action = «http: //localhost/PHP/test. php» method=«get»>

HDD: <inputtype=«text» name=«HDD»/><br>

CDROM: <inputtype=«text» name=«CDROM»/><br>

<inputtype=«submit»/>

Конец формы

Если Вы в этой форме в строкеHDD наберете, к примеру, «Maxtor», а в строке CDROM «Nec»,то она сгенерирует следующую форму запроса:

http: // localhost/PHP/test.php? HDD=Maxtor&CDROM=Nec

В нашем случае РНР создастследующие переменные: $HDD = «Maxtor» и$CDROM = «Nec».

Вы можете работать с этимипеременными из Вашего скрипта (у нас – test. php) как с обычными переменными. Внашем случае они просто выводятся на экран:

<?

echo("<p>HDD is$HDD</p>");

echo("<p>CDROMis $CDROM</p>");

? >

Если запрос страницы выполняетсяпри помощи метода POST, то появляется группа POST-переменных, которыеинтерпретируются также и помещаются в массив $HTTP_POST_VARS.

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

integer;

string;

boolean;

double;

array;

object;

Есть функция gettype(),возвращающая тип, который РНР назначил переменной:

<?

$var =«5»;

$var1 = 5;

echo(gettype($var));

echo"<br>";

echo(gettype($var1));

? >

В первом случае РНР вернетstring, во втором integer. Существует также функция settype(), которая явно устанавливаеттип:

<?

$var =«5»;

echo(gettype($var));settype($var, integer);

echo"<br>"; echo(gettype($var));

? >

Выполнение этого фрагмента кодаприведет к такому же результату, как и предыдущего. Кроме функции settype() преобразованиетипов в РНР можно осуществлять при помощи операторов преобразования типов. Преобразованиетипов осуществляется путем указания перед переменной ее нового типа, взятого вскобки: $var = (int) $var; Соответственно, выполнение следующего кода приведетк тому, что РНР вернет integer:

<?

$var = «5»; // типstring

$var = (int) $var; // преобразуемв int

echo(gettype($var));

? >

Передача переменных в php

Очень часто возникаетпотребность передачи переменных скрипту на php. Для этого существует 2 метода GET и POST рассмотрим на примере — заполнениекакой-либо формы, например формы с логином и паролем.

Итак, прежде всего, давайтеопределимся с формой. Например, ее html код может выглядеть следующий образом:

<formmethod=«post» action=«login. php»>

Логин: <br><inputtype=«edit» name=«login»><br>

Пароль: <br><inputtype=«password» name=«pas»><br>

<inputtype=«submit» value=«Ok»>

</form>

Результат компиляции данногоhtml кода будет примерно следующим: (см рис 1)

/>

Рис.1

Рассмотрим открывающий тэг Form.В нашем случае он содержит два параметра:

method=«post» action=«login.php» Action указывает, на какой именно документ должна воздействоватьформа (в нашем случае на login. php — ему и будут передаваться переменные). Параметрmethod указывает метод передачи переменных. В данном случае метода: post.

Метод GET аналогичен. Принцип их отличия лишь в одном — в методепередачи переменных. Если вы будите использовать метод get, переменные и ихзначения будут передаваться прямо в адресной строке, в нашем случае это будетстрока вида:

login. php? login=введенноезначение логина&pas=введенное значение пароля

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

[адрес сайта] [имя скрипта]? ([переменная1] = [значение переменной 1]) &([переменная 2] = [значение переменной 2])…&([переменная N] = [значение переменной N])

Например, если ввести в нашуформу логин User и пароль 12345 и нажать на кнопку Ok, то откроется страница садресом:

[адрес сайта, где размещенскрипт] login. php? login=User&pas=12345 Метод post передает все данные взаголовках — специальных областях сетевых пакетов. Данный метод характеризуетсяполной прозрачностью для пользователя — он даже может и не заметить, что что-топередается от скрипта к скрипту. Чтобы принять на php переданные переменные, несмотря на то, что этого иногда можно и не делать, все же лучше всегонепосредственно указывать, откуда нужно брать их значение. А данные значенияберутся из соответствующих массивов — для метода get это массив $_GET, для post- $_POST.

Например, чтобы в скрипте login.php принять переменные, которые ему передает наша форма, нам нужно взять ихзначения из соответствующего массива:

<? php

$login=$_POST ['login']; // логин

$pas= $_POST ['pas']; // пароль

? >

Аналогично нужно поступать икогда используется метод get. Какой метод передачи переменных в php лучшевыбрать? Все зависит от конкретных задач. Например, если это скрипт форума — нужноиспользовать метод post иначе get будет накладывать существенное ограничение — незабывайте, что он передает имена и значения переменных через адресную строку,максимальная длина которой ограничена 256 символами.

Если же вам нужно передаватькакие-либо переменные для перехода от страницы к странице удобней использоватьметод get — ведь передачу переменных в нем можно осуществить, просто указавсоответствующим образом адрес скрипта (добавив к нему? ([переменная 1] = [значениепеременной 1]) &([переменная 2] = [значение переменной 2])… &([переменнаяN] = [значение переменной N])).

Операторы языка PHP

Операторы цикла.

Операторы цикла задаютмногократное исполнение операторов в теле цикла. В PHP определены 4 разныхоператора цикла:

1) Цикл с предусловием:

while(condition) {

statements;

} 2) Цикл с постусловием:

do{

statements;

}while(condition);

3) Итерационныйцикл:

for(expression1;expression2; expression3) {

statements;

}

3) Итерационныйцикл foreach:

foreach (arrayas [$key =>] $value)

{

statements;

}

Операторы выбора/ if… else

К операторам выбора относят: условныйоператор (if… else) и переключатель (switch). Синтаксис условного оператора: if(condition) statement1 else statement2

Условие condition может бытьлюбым выражением. Если оно истинно, то выполняется оператор statement 1. Впротивном случае выполняется оператор statement 2. Допустима сокращеннаяформа записи условного оператора, в которой отсутствуют else и операторstatement 2.

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

Синтаксис языка предполагает,что при вложенных условных операторах каждое else соответствует ближайшему if. Вкачестве такого ошибочного примера можно привести следующую конструкцию [ПодбельскийВ.В. Язык С++. М.: Финансы и статистика, 2001]:

<?

$x = 1; $y = 1;

if($x == 1)

if($y == 1) echo(«x=1and y=1»);

else echo(«x! =1»);

? >

При х равном 1 и у равном 1совершенно справедливо печатается фраза «х = 1 and у = 1».Однако фраза «х! =1» может быть напечатана при х равном 1 и при у неравном 1, так как else соответствует ближайшему if. Условный внешний оператор,где проверяется $x == 1, является сокращенным и в качествеstatement 1 включает полный условный оператор, где проверяется условие $у ==1.Т. е. проверка этого условия выполняется только при х равном 1.Простым правильным решением этой задачи является применение фигурных скобок, т.е.построение составного оператора, т.е. нам нужно фигурными скобками ограничитьобласть действия условного внутреннего оператора, сделав его неполным. Темсамым внешний оператор превращается в полное условие:

<?

$x = 1; $y = 1;

if($x==1) {

if($y==1) echo(«x=1and y=1»);

}else echo(«x! =1»);

? >

Заметим, что проверкадополнительных условий возможна при помощи оператора elseif. Оператор if можетвключать сколько угодно блоков elseif, но else в каждом if может быть толькоодин. Как правило, в конструкциях if…elseif…else оператор else определяет, чтонужно делать, если никакие другие условия не являются true. Однако, вообщеговоря, использование оператора elseif довольно сильно ухудшает читабельностькода, и лучше в этом случае пользоваться переключателем (switch).

РНР предоставляет такжевозможность альтернативного синтаксиса условного оператора – без фигурныхскобок, а с применением оператора endif. В следующем примере первая таблицапомещается на страницу, если только $_GET ['HDD'] равно «Maxtor», авторая — если «Seagate». Наличие оператора endif в этом случаеобязательно, так как фигурная скобка, обозначающая конец блока if, отсутствует:

<?

if($_GET ['HDD']== «Maxtor»):

? >

<table>

<caption>Maxtor </caption>

</table>

<?

elseif($_GET ['HDD']== «Seagate»):

? >

<table><caption>Seagate </caption></table>

<?

endif;

? >

Результат выполнения скрипта:

/>

рис.2 Форма запроса

/>

Рис.3 Результат выполненияскрипта

Значение переменной $_GET ['HDD']передается формой test. html скрипту test. php. Код формы test.html:

<form action= «http: // localhost/PHP/test. php; » method=get>

HDD: <inputtype=«text» name=«HDD»/><br> <inputtype=«submit»/>

</form>

РНР также, как и С++, Javaпредоставляет возможность заменять блоки if…else условной операцией (в отличиеот унарных и бинарных операций условная операция используется с тремяоперандами). В изображении условной операции присутствуют два размещенных неподряд символа ‘? ’ и ‘: ’ и три операнда выражения: выражение_1? выражение_2: выражение_3

Первым вычисляется значениевыражения_1. Если оно истинно (т.е. не равно нулю), то вычисляется значениевыражения_2, которое и становится результатом. Если при вычислении значениявыражения_1 получится ноль (ложь), то в качестве результата берется выражение_3.Классическим примером условной операции является выражение x < 0? –x: x;

Это выражение возвращаетабсолютное значение переменой x.Т. е., к примеру, код

<?

if($_GET ['HDD']== «Maxtor») {

$_GET ['CDROM']= «Teac»;

}

else{ $_GET ['CDROM'] =«Nec»;

}

? >

можно, используя условнуюоперацию, заменить таким:

<? $_GET ['CDROM']= ($HDD == «Maxtor»)? «Teac»: «Nec»;? >

еще рефераты
Еще работы по информатике, программированию