
- •Лабораторная работа №4
- •4.4. Теоретические сведения
- •Общие сведения о языке php
- •Работа в редакторе Zend Studio
- •4.4.3. Переменные и типы данных php
- •4.4.3.1.Переменные
- •4.4.3.2.Глобальные переменные
- •4.4.3.3.Статические переменные
- •4.4.3.4.Константы
- •4.4.3.5.Типы данных
- •4.4.3.6.Преобразование типов
- •4.4.4.Массивы
- •4.4.5. Операторы
- •4.4.5.1. Математические операторы
- •4.4.5.2. Операторы присваивания
- •4.4.5.3. Строковые операторы
- •4.4.5.4. Операторы инкремента и декремента
- •4.4.5.5. Логические операторы
- •4.4.5.6. Операторы равенства
- •4.4.5.7. Операторы сравнения
- •4.4.6. Конструкции языка
- •4.4.6.1. Проверка условий
- •4.4.6.2. Цикл с предусловием While
- •4.4.6.3. Цикл с постусловием do-while
- •4.4.6.4. Цикл For
- •4.4.6.5. Инструкции break и continue
- •4.4.6.7. Конструкция switch-case
- •4.4.7. Функции
- •4.4.7.1. Определение и вызов функций
- •4.4.7.2. Возврат значения из функции
- •4.4.7.3. Рекурсивные функции
- •4.4.7.4. Функции-переменные
- •4.4.8. Файловый ввод/вывод и файловая система
- •4.4.8.1. Проверка существования и размера файла
- •4.4.8.2. Открытие и закрытие файлов
- •4.4.8.3.Запись в файл
- •4.4.8.4. Чтение из файла
- •4.5. Пример разработки программы на php
- •4.6. Указания по организации самостоятельной работы студентов
- •4.7. Контрольные вопросы
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.
Прежде чем выполнять операции с файлом, необходимо открыть его и связать с файловым манипулятором, а после завершения работы с файлом его следует закрыть. Эти темы рассматриваются в следующем разделе.