Язык программирования PHP | страница 49



>function Add_sign($string,

> $sign="С уважением, Петр"){

> echo $string ." ".$sign;

>}

>function Show_text(){

> echo "Отправить сообщение по почте
";

>}

>$func = "Show_text";

> // создаем переменную со значением,

> // равным имени функции Show_text

>$func();

> // это вызовет функцию Show_text

>$func = "Add_sign";

> // создаем переменную со значением,

> // равным имени функции Add_sign

>$func("Привет всем
");

> // это вызовет функцию

> // Add_sign с параметром "Привет всем"

>?>


В этом примере функция Show_text просто выводит строку текста. Казалось бы, зачем для этого создавать отдельную функцию, если существует специальная функция echo(). Дело в том, что такие функции, как echo(), print(), unset(), include() и т.п. нельзя использовать в качестве переменных функций. То есть если мы напишем:


>

>$func = "echo ";

>$func("TEXT");

>?>


то интерпретатор выведет ошибку:


>Fatal error: Call to undefined function:

> echo() in

>c:\users\nina\tasks\func\var_f.php on line 2


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


Внутренние (встроенные) функции


Говоря о функциях, определяемых пользователем, все же нельзя не сказать пару слов о встроенных функциях. С некоторыми из встроенных функций, такими как echo(), print(), date(), include(), мы уже познакомились. На самом деле все перечисленные функции, кроме date(), являются языковыми конструкциями. Они входят в ядро PHP и не требуют никаких дополнительных настроек и модулей. Функция date() тоже входит в состав ядра PHP и не требует настроек. Но есть и функции, для работы с которыми нужно установить различные библиотеки и подключить соответствующий модуль. Например, для использования функций работы с базой данных MySql следует скомпилировать PHP с поддержкой этого расширения. В последнее время наиболее распространенные расширения и соответственно их функции изначально включают в состав PHP так, чтобы с ними можно работать без каких бы то ни было дополнительных настроек интерпретатора.


Решение задачи


Напомним, в чем состоит задача. Мы хотим написать интерфейс, который позволял бы создавать html-формы. Пользователь выбирает, какие элементы и в каком количестве нужно создать, придумывает им названия, а наша программа сама генерирует требуемую форму.


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