Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КонспЛекци1.10.052.doc
Скачиваний:
12
Добавлен:
06.12.2018
Размер:
8.63 Mб
Скачать

6. Оператор with

Оператор with задает имя объекта по умолчанию. Он имеет вид:

with (выражение) оператор

Здесь выражение — любое выражение, значением которого является объект, оператор — любая группа операторов JavaScript; если эти группа содержит более одного оператора, то она должны быть заключена в фигурные скобки {}.

Этот оператор действует следующим образом. Для каждого идентификатора в операторе исполняющая система проверяет, не является ли он именем свойства объекта, заданного по умолчанию. Если да, то этот идентификатор считается именем свойства, если же нет, то именем переменной.

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

x = Math.cos(Math.PI / 2) + Math.sin(Math.LN10);

y = Math.tan(2 * Math.E);

С помощью оператора with этот фрагмент сценария можно существенно укоротить:

with (Math) {

x = cos(PI / 2) + sin(LN10);

y = tan(2 * E);

}

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

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

    1. (11 Занятие)Лаб. Работа. 4. Часть 6. Особенности применения, особенности языка и среда php (Знакомство с информационной технологией).

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

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

Однако, в отличие от ASP или ColdFusion, PHP является продуктом с открытым исходным кодом (Open Source) и платформенно-независим.

PHP работает на Windows NT и многих версиях Unix. Он может быть запущен как модуль в Apache или как исполняемая программа через CGI. В случае запуска в виде модуля Apache, PHP работает особенно легко и быстро. В этом случае отсутствуют накладные расходы, связанные с созданием процессов, поэтому результат выдается быстро, и не требуется настраивать mod_perl для уменьшения расходования памяти сервера.

Кроме различных операций с содержимым страниц, с помощью PHP можно формировать:

HTTP-заголовки,

установить cookie,

управлять аутентификацией,

перенаправить пользователя на другую страницу.

PHP предоставляет великолепные возможности по доступу к базам данных (и ODBC),

а также интеграцию с различными внешними библиотеками.

Это позволяет Вам делать все - от генерации PDF-документов до грамматического разбора в XML.

Операторы PHP вставляются прямо в Web-страницы, так что нет необходимости в специальных средах разработки (IDE).

Вы начинаете блок PHP-кода тегом <?php и заканчиваете его тегом ?>.

(Вы можете сконфигурировать PHP так, что будут использоваться теги в стиле ASP: <% %> или теги вида <SCRIPT LANGUAGE="php"></SCRIPT>.) Все, что находится между этими тегами будет интерпретироваться как PHP-код.

Синтаксис языка PHP подобен синтаксису C и Perl.

Вы не должны объявлять переменные до их использования. Легко создаются массивы и хэши (ассоциативные массивы).

Быстрее всего работает в том случае, когда он встроен в Apache, на Web-сайте PHP имеются инструкции по его установке на Microsoft IIS и Netscape Enterprise Server. Если у Вас еще нет копии программного обеспечения для установки PHP, Вы можете скачать ее с официального Web-сайта (http://www.php.net/). Там же Вы найдете подробное руководство, в котором описаны все функции и особенности PHP.

Синтаксис PHP С основами синтаксиса PHP Вы знакомы. Следующий код

<?php

echo "Hello, World!";

?>

дает

Hello, World!

Имена переменных обозначаются знаком $.

То же самое "Hello, World!" можно получить следующим образом:

<?php $message = "Hello, World!"; echo $message; ?>

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

<?php $greeting = "Hello "; $num = 3 + 2; $num++; echo "$greeting $num people!"; ?>

даст

Hello 6 people!

PHP имеет полный комплект операторов и они работают именно так, как Вы того ожидаете, особенно если у Вас имеется опыт работы с C или C++.

При работе с PHP можно придерживаться простого правила: "Если сомневаешься, попробуй: скорее всего оно именно так и работает."

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

<?php $name = 'Susannah'; $greeting_1 = "Hello, $name!"; $greeting_2 = 'Hello, $name!'; echo "$greeting_1\n"; echo "$greeting_2\n"; ?>

даст

Hello, Susannah! Hello, $name!

Обратите внимание на то, что \n в строке означает переход к новой строке, совсем как в Perl или в C. Однако это работает только в тех строках, которые взяты в двойные кавычки.

Массивы

Индексы массивов (как обычных, так и ассоциативных) задаются в квадратных скобках ([ и ]):

$fruit[0] = 'banana'; $fruit[1] = 'papaya'; $favorites['animal'] = 'turtle'; $favorites['monster'] = 'cookie';

Если Вы присваиваете какое-то значение элементу массива, не указывая номера элемента (оставляете поле индекса пустым), PHP присоединяет объект к концу массива. Так для приведенного выше примера с массивом $fruit можно достичь того же самого результата, написав:

$fruit[] = 'banana'; $fruit[] = 'papaya';

Вы можете также применять многомерные массивы:

$people['David']['shirt'] = 'blue'; $people['David']['car'] = 'minivan'; $people['Adam']['shirt'] = 'white'; $people['Adam']['car'] = 'sedan';

Создать массив можно также путем вызова функции array():

$fruit = array('banana','papaya'); $favorites = array('animal' => 'turtle',                     'monster' => 'cookie);

или

$people = array ('David' => array('shirt' => 'blue',                                     'car' => 'minivan'),                  'Adam' => array('shirt' => 'white',                                     'car' => 'sedan'));

Встроенная функция count() выдает число элементов в массиве.

$fruit = array('banana','papaya'); print count($fruit);

выдаст

2

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

Вы можете использовать операторы цикла, такие как for и while. В результате выполнения оператора

for ($i = 4; $i < 8; $i++) {

print "I have eaten $i bagels today.\n"; }

получим

I have eaten 4 bagels today. I have eaten 5 bagels today. I have eaten 6 bagels today. I have eaten 7 bagels today.

Тот же самый результат даст

$i = 4; while ($i < 8) {

print "I have eaten $i bagels today.\n";    $i++; }

Вы можете также использовать конструкции с if и elseif:

if ($user_count > 200) {     print "Сайт сейчас перегружен!"; } elseif ($user_count > 100) {     print "Сайт активно используется!"; else {     print "Сайт свободен - подключились только $user_count пользователей."; }

Сформулированное выше правило "Пробуй!" вполне применимо и в части управляющих конструкций. Вы можете использовать конструкции с switch, do...while и даже ?:.

Простая форма

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

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

<INPUT TYPE=TEXT NAME="name" VALUE="Glen Morris">

и в то время, когда выводится страница с этим PHP-кодом, переменная $name имеет значение Glen Morris.

Тогда Вы можете вывести это значение на экран:

echo "Hi $name!";

или вставить проверку в условном операторе:

if ($name == "Glen Morris") { echo "Please check your email."; }

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

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

Вывод формы

Первая функция служит для вывода формы:

<?php function display_form() {   global $PHP_SELF; ?> <FORM TARGET="<?php echo $PHP_SELF; ?>" METHOD=GET> Имя:   <INPUT TYPE=TEXT NAME="name"><BR>

Любимый сорт сыра: <INPUT TYPE=RADIO NAME="cheese" VALUE="brie">Very soft French Brie                  <INPUT TYPE=RADIO NAME="cheese" VALUE="cheddar">Farmhouse English Cheddar                  <INPUT TYPE=RADIO NAME="cheese" VALUE="mozzarella">Italian Buffalo Mozzarella

Когда Вы предпочитаете есть сыр:                  <INPUT TYPE=CHECKBOX NAME="times[]" VALUE="m">На завтрак                  <INPUT TYPE=CHECKBOX NAME="times[]" VALUE="n">В обед                  <INPUT TYPE=CHECKBOX NAME="times[]" VALUE="d">На ужин                  <INPUT TYPE=CHECKBOX NAME="times[]" VALUE="l">Поздно ночью

<INPUT TYPE=HIDDEN NAME="stage" VALUE="results"> <INPUT TYPE=SUBMIT VALUE="Thanks!">  </FORM> <?php } ?>

Большая часть представленного выше текста есть обычный HTML-текст, необходимый для формирования формы. Однако есть пара сложных моментов, требующих особого пояснения.

Во-первых, это переменная $PHP_SELF. $PHP_SELF - это удобная форма ссылки, ее значение равно URL текущей страницы. Мы задаем атрибуту TARGET этой формы значение $PHP_SELF, потому что мы хотим, чтобы эта страница обрабатывала форму. Используя $PHP_SELF вместо реального пути к файлу страницы, мы получаем возможность переименовывать или перемещать наш скрипт, не заботясь о внесении соответствующих изменений каждый раз, как только мы заново используем тот же кусок кода.

Кстати, строка

global $PHP_SELF;

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

Во-вторых, как Вы могли заметить, мы свободно переходим в режим PHP и обратно даже внутри функции. Это полностью законно. PHP умеет игнорировать HTML-код и выделять только PHP-блоки. Это быстрее, чем оставаться в режиме PHP и организовывать вывод HTML, используя echo.

Теперь обратите внимание на атрибут NAME тега INPUT. Вы видите, что в случае, если тип поля ввода есть CHECKBOX, то после наименования поля (в данном случае times[]) стоит пара квадратных скобок, Если же тип поля ввода есть RADIO, то после имени (cheese) таких скобок нет. Это объясняется тем, что поля типа RADIO служат для выбора одного и только одного из вариантов ответа, поэтому значением переменной cheese будет одна строка. Поля типа CHECKBOX (их несколько) позволяют выбрать (или не выбрать) каждый из возможных вариантов, поэтому для сохранения ответов пользователя PHP должен запомнить их в виде массива. Добавление [] после имени переменной times и указывает на то, что в данном случае это массив, а не единичная переменная.

И, наконец, в этом куске кода имеется скрытая переменная с именем stage. Мы используем $stage чтобы сказать программе, хотим ли мы вывести форму или отобразить результаты обработки ответов.

Обработка формы

Теперь рассмотрим функцию process_form() обработки формы после ввода ответов пользователем.

<?php function process_form() {   global $name;    global $cheese;   global $times;

  if ($cheese == 'brie') { $cheese_message = 'I love brie.'; } elseif ($cheese == 'cheddar') { $cheese_message = 'Cheddar is awesome!'; }   else { $cheese_message = 'Fresh mozzarella is divine.'; }

  $favorite_times = count($times);

  if ($favorite_times <= 1) {  $times_message = 'You should eat cheese more often.';   } elseif ($favorite_times > 1 && $favorite_times < 4) {   $times_message = 'Those are good times to eat cheese.';   } else {      $times_message = 'You are eating too much cheese.';   }

  echo "Hello $name.";   echo "$cheese_message $times_message"; }

?>

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

Далее используется функция count() для того, чтобы подсчитать, сколько раз в день ест сыр человек, ответивший на наши вопросы. Если в предыдущем случае мы должны были сравнить ответ посетителя с каждым из возможных значений переменной $cheese, то при анализе значений переменной $favorite_times можно воспользоваться операциями сравнения "меньше чем" и "больше чем". Знаки && в условном операторе "$favorite_times > 1 && $favorite_times < 4" означают логическую операцию "И" ("and"). То есть $favorite_times должно одновременно быть больше 1 и меньше 4 для того, чтобы условие было выполнено.

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

Организуем вывод формы

Теперь, когда мы имеем эти две функции, остается добавить только маленький кусочек кода для того, чтобы вызвать их в нужной последовательности. Итак, после (или ниже) записи тела функцийdisplay_form() и process_form() добавляем:

<?php

if (empty($stage)) { display_form(); } else { process_form(); }

?>

Здесь мы вначале проверяем, задано ли какое-либо значение переменной $stage. В PHP переменная считается пустой (empty), если ее значение не задано явно (то есть ей никогда не придаются значения по-умолчанию), или ей задано пустое значение (переменной присвоено значение пусто, если она приравнена пустой строке - '', или ей присвоено значение 0). Когда посетитель впервые попадает на нашу страницу, переменная $stage пуста. Поэтому на страницу будет выводиться форма с нашими вопросами; в противном случае мы должны обработать заполненную форму.

И это все, что мы хотели сказать об обработке простых форм с помощью PHP.

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

PHP позволяет легко сохранять и извлекать информацию из различных баз данных: MySQL, Oracle, Microsoft SQL Server и других. Вы можете на лету создавать и модифицировать графические образы.

Официальный сайт (http://www.php.net/). Он-лайновое руководство (http://www.php.net/manual/) является великолепным справочником по функциям PHP и их использованию.

"+, -, *, /, %" - соответственно сложение, вычитание, умножение, деление с запятой, целочисленное деление.

    Операторы сравнения

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

$a == $b

равно

TRUE, если $a равно $b.

$a === $b

идентично

TRUE, если $a равно $b и они одного типа.

$a != $b

не равно

TRUE, если $a не равно $b.

$a <> $b

не равно

TRUE, если $a не равно $b.

$a !== $b

не идентично

TRUE, если $a не равно $b или они разных типов.

$a < $b

меньше

TRUE, если $a строго меньше $b.

$a > $b

больше

TRUE, если $a строго больше $b.

$a <= $b

меньше или равно

TRUE, если $a меньше или равно $b.

$a >= $b

больше или равно

TRUE, если $a больше или равно $b.

Строковые операторы С помощью них объединяют строковые значения, т.е. из нескольких строк текста делают одну строку.<?php $a = "Hello "; $b = $a . "World!"; // теперь $b содержит "Hello World!" $a = "Hello "; $a .= "World!";     // теперь $a содержит "Hello World!" ?>

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

    1. Часть 2: Использование MS Acses (Знакомство с информационной технологией).

    2. (12 занятие)Лаб. работа. 5. MS Acses (Знакомство с информационной технологией).

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

    1. Часть 3: Использование оборудования (Знакомство с информационной технологией).

    2. (13 занятие)Лаб. работа. 6. Анализ рыночной ситуации подбор комплектующих для оптимальной сборки ПК различного назначения с исползованием прайслистов и описаний составных частей ПК (например на сайте www.nix.ru) (Знакомство с информационной технологией).

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

    1. Часть 4: Дополнительные лабораторные работы

    2. (14 занятие)Дополнительная: Лаб. работа. 7. Использование библиотеки DirectX для создания трехмерных виртуальных миров (Знакомство с информационной технологией).

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

    1. Часть 5: (15,16,17 занятие) Сдача лабораторных работ должниками; публичная защита курсовой работы ; запасные занятия на случай если будут пропадать пары из-за праздников, отключения воды и т.п.