Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
72
Добавлен:
17.02.2016
Размер:
87.55 Кб
Скачать

Функции пользователя

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

function имя_функции(параметры)

{ код }

Возвращать значения из функции возможно при помощи оператора return. Но его использование необязательно. return можно также использовать для прекращения работы функции.

function MyFunc ($param)

{ if($param == 0)

return;

echo ("The parameter is ".$param);

}

. . . .

$number = 91;

MyFunc($number);

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

function Change (&$num1, &$num2)

{ $changer = $num1;

$num1 = $num2;

$num2 = $changer;

}

$number1 = 10;

$number2 = 25;

Change ($number1, $number2);

echo $number1; //выведет 25

echo $number2; //выведет 10

Можно устанавливать для параметров значение по умолчанию:

function MyFunc($first, $second = 0)

{ $result = $first + $second;

return ($result);

}

$num = MyFunc(500);

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

function FirstFunc ($param) {//возводит число во вторую степень

function SecondFunc($num){

//возводит число в третью степень

return ($num * $num * $num);

}

return ($param * $param);

}

$someNumber = 10;

echo (FirstFunc ($someNumber));

echo (SecondFunc (5));

Подключение файлов

В PHP можно «разбрасывать» содержимое сценариев по нескольким файлам. Например, в одном файле находятся функции и константы, а во втором файле сам код, который выполняется.

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

require ("имя_файла");

Так же можно использовать альтернативную форму для require - include("имя_файла").

Файл p1.php

<?php

function DemoFunc ( ) {return "Hello";}

?>

Файл p2.php

<?php

$var = require ("p1.php");

echo ($var); //выводит Hello

?>

Есть несколько различий между require и include.

require в случае ошибки при подключении файла тут же закончит выполнение PHP-скрипта, то есть вызовет функцию exit(), а include продолжит далее выполнение скрипта.

Каждый раз, когда в программе встречается слово require, на его место интерпретатор PHP вставляет текст того файла, который он подключает. При использовании include происходит то же самое за исключением того, что при еще одном обращении к этому же include снова произойдет еще одна вставка, что не произойдет при использовании require. Следующий пример характеризует последнее различие (при условии существования двух файлов My1.php и My2.php).

for ($i = 1; $i <= 2; $i++) { require ("My".$i.".php");}

// интерпретатор PHP выдаст ошибку

for ($i = 1; $i <= 2; $i++) { include ("My".$i.".php");}

// сработает

Задания к работе:

Задание 1

В html документе создайте форму, в которой введутся данные, необходимые для решения задачи, и кнопку типа Submit для активизации сценария на языке РНР в соответствии с вариантом.

Вариант задания

Формулировка задания

Пройдет ли кирпич со сторонами x, y, z сквозь прямоугольное отверстие со сторонами r и s. Стороны отверстия должны быть параллельны граням кирпича.

Можно ли коробку размером a ´ b ´ c упаковать в посылку размером r ´ s ´ t? «Углом» укладывать нельзя.

Можно ли из круглой заготовки радиуса r вырезать две прямоугольные пластинки с размерами a ´ b и c ´ d?

Лежит ли точка M(xm, ym) внутри треугольника, заданного координатами своих вершин A(xA, yA), B(xB, yB), C(xC, yC)?

Путник двигался t1 часов со скоростью v1, а затем t2 часов – со скоростью v2 и t3 часов – со скоростью v3. За какое время он одолел первую половину пути, после чего запланировал привал?

Проверить лежит ли окружность целиком внутри окружности и наоборот.

Можно ли на прямоугольном участке застройки размером a на b метров разместить два дома размером p на q и r на s метров? Дома можно располагать только параллельно сторонам участка.

Задание 2

В html документе создайте форму, в которой введутся данные, необходимые для решения задачи, и кнопку типа Submit для активизации сценария на языке РНР в соответствии с вариантом.

Вариант задания

Формулировка задания

Определить сумму цифр введенного числа a (a<1000).

Определить сумму чисел от 3 до 99 кратных числу 3.

Вывести в столбец произведения чисел а = 143, b = 777 и числа с, последовательно принимающего значения 1, 2, 3, ... 9.

Получить произведения числа а = 12345689 на числа 9, 18, 27, ... 81.

Произвести суммирование натуральных чисел 1, 2, 3,..., пока их сумма s не станет равной или превысит величину h. Вывести последнее слагаемое и значение суммы.

Сколько чисел последовательности 2, 4, 6, 8, ... нужно взять, чтобы их сумма превысила 1000? Вывести величину последнего слагаемого и суммы.

Найти сумму всех четных натуральных чисел от 1 до 100.

Контрольные вопросы:

  1. С помощью какого оператора реализуется алгоритмическая структура «Разветвления»?

  2. С помощью какого оператора реализуется алгоритмическая структура «Выбор»?

  3. Перечислите знаки отношений.

  4. Перечислите основные логические операции.

  5. Когда применяется условный оператор?

  6. Что позволяет делать оператор выбора?

  7. Что такое селектор?

  8. Каково назначение операторов цикла?

  9. Какие операторы цикла вы знаете?

  10. Когда используется цикл c параметром For (ДЛЯ)?

  11. Когда используются циклы c предусловием или постусловием?

  12. Когда в цикле применяется составной оператор?

  13. Когда выполняется тело оператора цикла с предусловием While (ПОКА)?

  14. Когда выполняется тело оператора цикла Do с постусловием (ДО)?

  15. Что такое функция и ее виды?

  16. Как осуществляется обращение к функциям и переменным?