Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PHP_Начало_Лабораторная работа4нов.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.16 Mб
Скачать

4.4.7.4. Функции-переменные

Одной из интересных возможностей PHP является функйии-переменные, то есть динамические вызовы функций, имена которых определяются во время выполнения программы. Хотя в большенстве web-приложений можно обойтись и без функций-переменных, они значительно сокращают объём и сложность програмного кода, а также часто снимают необходимость в условных командах if.

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

Обобщенный синтаксис вызова функции-переменной: $Имя_функции();

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

<?

// Приветствие на итальянском языке

function italian() {

echo "Benvenuti to PHP Recipes"; }

// Приветствие на русском языке

function english() {

echo "Welcome to PHP Recipes"; }

// Выбрать английский язык

$language='english';

// Выполнить функцию-переменную

$language();

?>

Рис. 20 Результат работы программы с функцией-переменной

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

4.4.8. Файловый ввод/вывод и файловая система

4.4.8.1. Проверка существования и размера файла

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

file_exists( ) и is_file( ).

Функция f ilе_ехists ( ) проверяет, существует ли заданный файл. Если файл существует, функция возвращает TRUE, в противном случае возвращается FALSE. Синтаксис функции file_exists( ):

bool file_exists(string файл)

Пример проверки существования файла:

if (! file_exists ($filename)) :

echo "File $filename does not exist!";

endif:

Функция is_file( ) проверяет существование заданного файла и возможность выполнения с ним операций чтения/записи. В сущности, is_file( ) представляет собой более надежную версию file_exists( ), которая проверяет не только факт существования файла, но и то, поддерживает ли он чтение и запись данных:

bool is_file(string файл)

Следующий пример показывает, как убедиться в существовании файла и возможности выполнения операций с ним:

<?

$file = "somefile.txt";

if (is_file($file)) :

echo "The file $file is valid and exists!";

else :

echo "The file $file does not exist or it is not a valid file!";

endif:

?>

Рис. 21. Результат работы программы на проверку существования файла

Функция filesize( ) возвращает размер (в байтах) файла с заданным именем или FALSE в случае ошибки. Синтаксис функции filesize( ):

int filesize(string имя_файла)

Если необходимо определить размер файла pastry.txt. Для получения нужной информации можно воспользоваться функцией filesize( ):

$fs = filesize("pastry.txt"); echo "Pastry.txt is $fs bytes.";

Выводится следующий результат:

Pastry.txt is 179 bytes.

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