- •№1 Знать расшифровку и основной смысл понятий: dns, html, xhtml, xml, sgml, ip, http, w3c, ietf, css, ecmaScript, dom, php
- •№2 Основные понятия Интернет
- •№3 Предназначение языков разметки html и xhtml.
- •№4 Структура xhtml документа.
- •№5 Логическое и физическое форматирование в html и xhtml.
- •№6 Гипертекстовые ссылки, абсолютные и относительные url.
- •№7 Отличия между html и xhtml.
- •№8 Способы присоединения стиля к тегу.
- •№10 Теги div и span.
- •№11 Стилевые классы.
- •№9 Синтаксис стилей.
- •№12 Создание css макетов с фиксированной шириной.
- •№13 Центрирование css макетов с фиксированной шириной
- •№14 Создание текучих макетов при помощи css
- •№15 Способы позиционирования элементов документа (свойства position и float).
- •№16 Отличительные особенности синтаксиса JavaScript
- •№17 Область видимости переменных в JavaScript.
- •№18 Простые объекты в JavaScript, свойства универсального класса Object.
- •№19 Массивы в JavaScript.
- •№20 Использование регулярных выражений в JavaScript.
- •№21 Функции в JavaScript.
- •№22 Конструкторы в JavaScript
- •№23 Прототипы в JavaScript.
- •№24 Динамическое формирование содержимого документа при помощи JavaScript.
- •№25 Объект Document и его свойства.
- •№26 Объектная модель w3c dom, представление документов в виде дерева.
- •№27 Способы обработки событий в JavaScript (api Level 0 и api Level 2).
- •№28 Объекты, описывающие свойства событий.
- •№29 Таймеры в JavaScript.
- •№30 Програмное обеспечение Web-сервера (lamp), основные возможности и предназначение.
- •№31 Структура каталогов сервера Apache
- •№32 Настройка виртуальных хостов в Apache 2
- •№33 Базовый синтаксис php
- •№34. Логические управляющие структуры в php
- •№35 Управляющие структуры повторения в php
- •№36 Функции, определяемые пользователем
- •№37 Динамические переменные и функции в php
- •№38 Использование ссылок в php.
- •№39 Строки в php
- •№40 Массивы
№36 Функции, определяемые пользователем
Приведем пример синтаксиса, используемого для описания функций:
Пример #1 Псевдокод для демонстрации использования функций
<?php
function foo($arg_1, $arg_2, /* ..., */ $arg_n)
{
echo "Example function.\n";
return $retval;
}
?>
Внутри функции можно использовать любой корректный PHP-код, в том числе другие функции и даже объявления классов.
Имена функций следуют тем же правилам, что и другие метки в PHP. Корректное имя функции начинается с буквы или знака подчеркивания, за которым следует любое количество букв, цифр или знаков подчеркивания. В качестве регулярного выражения оно может быть выражено так: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*.
Функции не обязаны быть определены до их использования, исключая тот случай, когда функции определяются условно, как это показано в двух последующих примерах.
В случае, когда функция определяется в зависимости от какого-либо условия, например, как это показано в двух приведенных ниже примерах, обработка описания функции должна предшествовать ее вызову.
Пример #2 Функции, зависящие от условий
<?php
$makefoo = true;
/* Мы не можем вызвать функцию foo() в этом месте,
поскольку она еще не определена, но мы можем
обратиться к bar() */
bar();
if ($makefoo) {
function foo()
{
echo "Я не существую до тех пор, пока выполнение программы меня не достигнет.\n";
}
}
/* Теперь мы благополучно можем вызывать foo(),
поскольку $makefoo была интерпретирована как true */
if ($makefoo) foo();
function bar()
{
echo "Я существую сразу с начала старта программы.\n";
}
?>
Пример #3 Вложенные функции
<?php
function foo()
{
function bar()
{
echo "Я не существую пока не будет вызвана foo().\n";
}
}
/* Мы пока не можем обратиться к bar(),
поскольку она еще не определена. */
foo();
/* Теперь мы можем вызвать функцию bar(),
обработка foo() сделала ее доступной. */
bar();
?>
Все функции и классы PHP имеют глобальную область видимости - они могут быть вызваны вне функции, даже если были определены внутри и наоборот.
PHP не поддерживает перегрузку функции, также отсутствует возможность переопределить или удалить объявленную ранее функцию.
Замечание: Имена функций регистронезависимы, тем не менее, более предпочтительно вызывать функции так, как они были объявлены.
Функции PHP поддерживают как списки аргументов переменной длины, так и значения аргументов по умолчанию. Смотрите также описания функций func_num_args(), func_get_arg(), и func_get_args() для более детальной информации.
Можно также вызывать функции PHP рекурсивно. Однако, пытайтесь избегать вызовов рекурсивных функций/методов с более чем 100-200 уровней рекурсии, так как это сильно бьет по стэку и может вызвать крах выполняемого скрипта.
Пример #4 Рекурсивные функции
<?php
function recursion($a)
{
if ($a < 20) {
echo "$a\n";
recursion($a + 1);
}
}
?>
№37 Динамические переменные и функции в php
Динамической переменной считается та, имя которой хранится в самой переменной. Это так называемая "переменная переменная".
Например:
$var = "first";
$$var = "Second";
# $$var == $first == "Second"
$$var - динамическая, ее имя может меняться вместе с изменением $var.
Также, можно связать имя переменной с содержимым другой переменной неявно:
$first = "second";
$second = "third";
print $first; // prints "second"
print $$first; // prints "third"
Динамические функции
В PHP можно использовать динамические функции. Это означает, что если некоторой переменной присвоено имя функции, то с этой переменной можно обращаться точно так же, как с самой функцией.
Пример 5
<html>
<head>
<title>Переменные функции</title>
</head>
<body>
<?php
function funct1 ()
{
echo "Мы внутри функции funct1( );<br>";
}
function funct2 ()
{
echo "Мы внутри функции funct2( );<br>";
}
$myfunct = "funct1";
$myfunct();
$myfunct = "funct2";
$myfunct();
?>
</body>
</html>
