Функции. Обработка HTML-форм в РНР. Лекция 3

Содержание

Слайд 2

Объявление и вызов функции

function fun ()
{
// операторы
}
Если функция возвращает значение, в

Объявление и вызов функции function fun () { // операторы } Если
ее теле должен присутствовать оператор return.
function fun ()
{
// операторы
return $var;
}

Слайд 3

Пример функции, возвращающей сумму трех параметров

function sum ($a, $b, $c)
{
$var =

Пример функции, возвращающей сумму трех параметров function sum ($a, $b, $c) {
$a + $b + $c ;
return $var;
}
echo sum (1,2,3);

Слайд 4

Условное объявление функции

$flag = true;
// если переменная flag = true, то

Условное объявление функции $flag = true; // если переменная flag = true,
объявляем функцию
if ($flag)
{
function sum ($a, $b, $c)
{
$var = $a + $b + $c ;
echo $var;
}
}
// вызываем функцию, если переменная flag = true
if ($flag) sum (1,2,3);

Слайд 5

Передача параметров по значению и ссылке

Пример передачи аргумента по значению.
function sum

Передача параметров по значению и ссылке Пример передачи аргумента по значению. function
($var)
{
$var = $var + 2 ;
return $var;
}
$per = 10;
echo sum($per);
echo “$per”;

Слайд 6

Пример передачи аргумента по ссылке

function sum (&$var)
{
$var = $var + 2

Пример передачи аргумента по ссылке function sum (&$var) { $var = $var
;
return $var;
}
$per = 10;
echo sum($per);
echo “$per”;

Слайд 7

Необязательные параметры

function sum ($a=5, $b=7)
{
$var = $a + $b;
echo $var;
}
sum();
sum(3);
sum(1,2);
Некорректное

Необязательные параметры function sum ($a=5, $b=7) { $var = $a + $b;
объявление функции:
function sum ($a=5, $b)
Если после этого вызывать функцию sum() :
sum(1);
то прекращения выполнения скрипта не происходит

Слайд 8

Переменное количество параметров

Функции без параметров можно передавать любое их количество.
function sum

Переменное количество параметров Функции без параметров можно передавать любое их количество. function
(){
echo “Вызов функции”;
}
sum(1, 17, “Третий параметр”);
При таком вызове интерпретатор РНР не выдает предупреждений

Слайд 9

Функции, работающие с переменным количество параметров

func_num_args() возвращает количество параметров, переданных функции
func_get_args()

Функции, работающие с переменным количество параметров func_num_args() возвращает количество параметров, переданных функции
возвращает массив с параметрами, переданными функции
func_get_arg($arg_num) возвращает значение параметра с номером $arg_num.
Пример функции, которая выводит свои параметры.
function f() {
for ($i=0; $i < func_num_args(); $i++)
echo “Параметр номер”. $i . func_get_arg($i) . “
” ;
// вызов функции
echo f (1, 17, “Третий параметр”);

Слайд 10

Локальные переменные

Переменные в функциях имеют локальную область видимости.
Пример.
function f()
{
$var=7;
echo $var;
}
$var=15;

Локальные переменные Переменные в функциях имеют локальную область видимости. Пример. function f()
// внешняя переменная
f();
echo $var;

Слайд 11

Глобальные переменные

Если переменная объявлена как global, доступ к ней возможен из

Глобальные переменные Если переменная объявлена как global, доступ к ней возможен из
любой части программы.
Пример.
function f()
{
global $var;
$var=7;
echo $var;
}
$var=15;
echo $var;
f();

Слайд 12

Статические переменные

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

Статические переменные Локальная переменная при каждом вызове функции инициализируется заранее. Чтобы локальная
сохраняла свое предыдущее значение при новых вызовах функции, ее можно объявить статической при помощи ключевого слова static.
Пример.
function f()
{
static $var=0;
return ++$var;
}

Слайд 13

Обработка HTML-форм. Протокол GET

Если используется метод GET, то передача параметров происходит

Обработка HTML-форм. Протокол GET Если используется метод GET, то передача параметров происходит
в строке запроса после символа вопроса.
http://www.mysite.ru/forum/read.php?id_forum=1
GET-параметры автоматически помещаются в суперглобальный массив $_GET. Имена параметров выступают в качестве ключей массива.
Пример. Выведем значение GET-параметра id_forum.
echo $_GET[‘id_forum’];
?>

Слайд 14

GET-параметры

НТТР допускает использование в качестве имени GET-параметра имена, начинающиеся с цифры

GET-параметры НТТР допускает использование в качестве имени GET-параметра имена, начинающиеся с цифры
или содержащие тире.
Значения таких параметров нужно извлекать из переменной окружения $_SERVER[‘QUERY_STRING’]
Если скрипту нужно передать несколько GET-параметров:
http://www.mysite.ru/forum/read.php?id_forum=1&id_theme=3&id_post=7
Все параметры находятся в массиве $_GET.

Слайд 15

Функции преобразования GET-параметров

GET-параметры и их значения могут содержать символы кириллицы. Эти

Функции преобразования GET-параметров GET-параметры и их значения могут содержать символы кириллицы. Эти
символы нужно преобразовать в другой формат. Для этого в РНР существует несколько функций.
urlencode($str) – возвращает строку, в которой недопустимые символы кодируются знаком % и двумя 16-ричными числами. Пробел кодируется знаком +.
urldecode($str) – обратная urlencode() функция, выполняющая декодирование символов, начинающихся с %.
Для разбора строки запроса предназначена функция parse_url(), которая возвращает отдельные компоненты запроса в виде ассоциативного массива.

Слайд 16

Пример

$url = ‘http://user:pass@www.mysite.ru/path/index.php?par=value#serg’;
$arr = parse_url($url);
echo “

”;
print_r($arr);
echo “
”;
?>
Результат:
Array (
[scheme] => http
[host] =>

Пример $url = ‘http://user:pass@www.mysite.ru/path/index.php?par=value#serg’; $arr = parse_url($url); echo “ ”; print_r($arr); echo
www.mysite.ru
[user] => user
[pass] => pass
[path] => /path/index.php
[query] => par=value
[fragment] => serg
)

Слайд 17

Пример программы обработки ввода пользователя в HTML-форму

Создадим файл form.html:



Пример программы обработки ввода пользователя в HTML-форму Создадим файл form.html:
name="user”>





Слайд 18

Программа, обрабатывающая данные формы

Создадим файл form.php:


Чтение данных формы


Программа, обрабатывающая данные формы Создадим файл form.php: Чтение данных формы print "Welcome
print "Welcome $user

\n\n";
print "Your address is:

\n,\n$address";
?>


Слайд 19

Обработка формы с флажками


Вы знакомы с

Обработка формы с флажками Вы знакомы с РНР? Вы знакомы с С++?
РНР?
Вы знакомы с С++?
Вы знакомы с Паскалем?
Вы знакомы с VBA?
< input type=’submit’ value=’Передать’>

echo “
”;
print_r($_POST);
echo “
”;
?>
Результат:
Array (
[php] => on
[c] => on
)

Слайд 20

Доступ ко всем полям формы через ассоциированный массив

В зависимости от того, какой

Доступ ко всем полям формы через ассоциированный массив В зависимости от того,
метод передачи используется - GET или POST- используется один из массивов — $_GET или $_POST. Это ассоциированные массивы, содержащие пары имя/значение для каждого элемента переданной формы.
Пример. Вывести список всех полей и переданных значений при использовании метода передачи GET.
Чтение данных произвольной формы с помощью ассоциированных массивов

foreach ( $_GET as $key=>$value ) {
print "$key = = $value
\n";
}
?>