#8. 3 php Чтение символов: fgetc

Зачастую требуется считать из файла не целую строку, а отдельный символ. Для этого предназначена функция fgetc. Пример 1 демонстрирует использование этой функции для посимвольного чтения и отображения содержимого файла. Следует обратить внимание, что символ конца строки заменяется на тег <BR>. На рисунке 1 приведен результат выполнения этого примера.

#8. 2 php Чтение строк текста: fgets

Для чтения строки текста из файла используется функция fgets, ниже приведен ее синтаксис:

#8. 1 php Открытие файла: fopen

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

#7.14 php Доступ к методам базового класса

При использовании наследования может возникнуть необходимость вызова перекрытого метода базового класса. Например, пусть метод set_name в классе Animal описан следующим образом:

function set_name($text)
{
    $this->name = $text;
}

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

#7.13 php Переопределение методов базового класса. Модификаторы доступа при переопределении. Запрет переопределения (final)

При наследовании одного класса от другого в порожденном классе имеется возможность создать метод с точно таким же именем, что и в базовом классе. В этом случае метод базового класса будет перекрыт, и объекты порожденного класса будут использовать новый метод вместо перекрытого метода базового класса.

Например, в классе Lion, порожденном на основе класса Animal, можно описать метод set_name, который будет преобразовывать буквы имени в заглавные.

#7.12 php Наследование и защищённые методы

Как было показано выше, публичные (public) свойства и методы доступны для вызова извне объекта, а приватные - нет. Но если свойство или метод объявлены как защищенные (protected), доступ к ним разрешен не только изнутри класса, где они описаны, но также изнутри всех классов, порожденных на основе данного.

#7.11 php Наследование классов

Зачастую удобно не разрабатывать новый класс заново, а основать его на каком-либо другом классе. Например, предположим, что разработан класс Vehicle, в котором содержатся разнообразные методы управления транспортным средством, например, start, run, step и stop. Далее, пусть требуется создать классы, описывающие специфические типы транспортных средств, например, Car, Truck, Helicopter, Oceanliner и т.д.

#7. 5 php Конструкторы и деструкторы

Конструкторы объектов

Как было показано выше, для инициализации свойств классов можно использовать соответствующие методы доступа. Но существует и другой способ присвоения значений свойствам класса при создании объекта — использование конструкторов. В PHP конструктором является метод класса со специальным именем __constuct (имя начинается с двух подчеркиваний), которому при создании объекта могут быть переданы соответствующие данные.

#7. 4 php Управление доступом к свойствам и методам класса

В PHP существует три модификатора доступа к свойствам и методам класса:

  • public -- нет ограничений на доступ.
  • private -- доступ разрешен только изнутри класса
  • protected -- доступ разрешен только изнутри класса и всех его потомков

По умолчанию все свойства и методы объявлены как public. Рекомендуется всегда явно указывать модификатор доступа для всех свойств и методов.

#7. 3 php Создание объекта. Представление объекта в виде строки (перегрузка преобразования объекта в строку)

В предыдущем разделе был создан класс Animal, но для того, чтобы его использовать, следует вначале создать объект данного класса. Обычные переменные в зависимости от своего содержимого имеют определенный тип данных. Класс также является типом данных, и объект класса может быть сохранен в переменной.

Pages

Subscribe to fkn+antitotal RSS