Курсовая работа: Создание инструментального средства для организации социологических опросов
PHP поддерживает широкие объектно-ориентированные возможности, полная поддержка которых была введена в пятой версии языка.
Класс в PHP объявляется с помощью ключевого слова class. Методы и поля класса могут быть общедоступными (public, по умолчанию), защищёнными (protected) и скрытыми (private). PHP поддерживает наследование (родительский класс указывается с помощью ключевого слова extends после имени класса) и интерфейсы (ставятся в соответствие с помощью implements). Разрешается объявление финальных, абстрактных методов и классов. Множественное наследование классов не поддерживается, однако класс может реализовывать несколько интерфейсов. Для обращения к методам родительского класса используется ключевое слово parent.
Классы в PHP 5 имеют ряд специальных методов (так называемых «magic methods»), начинающихся с двух символов подчёркивания. Особо стоит отметить конструктор (__construct, в ранних версиях конструктором служил метод, одноименный с классом) и деструктор (__destruct), а также методы чтения (__get) и записи (__set), свёртывания (__sleep) и развёртывания (__wake), клонирования (__clone) и др. Эти методы являются достаточно гибким инструментом: переопределяя их, можно легко добиться существенного изменения поведения объекта.
Экземпляры класса создаются с помощью ключевого слова new, обращение к полям и методам объекта производится с использованием символов ->. Для доступа к членам класса из его методов используется переменная $this.
class C1 extends C2 implements I1,I2{private $a; protected $b;function __construct($a,$b){ parent::constructor($a,$b); $this->a = $a; $this->b = $b; }public function plus(){ return $a+$b; }/* ............... */ }$d = new C1(1,2);echo $d->plus(); [3]
Другие возможности
Среди наиболее часто используемых возможностей PHP стоит отметить следующие:
· имеется большой арсенал функций для работы со строками;
· работа с регулярными выражениями PCRE выполняется функциями с префиксом preg_
· работа с базами данных осуществляется посредством модулей php5-mysql для MySQL, php5-pgsql для PostgreSQL и др. Функции этих модулей позволяют открывать соединение, выполнять SQL-запросы к СУБД, получать данные в удобной для обработки виде и т.д. В серьезных проектах рекомендуется использовать модули абстракции базы данных и объектно-реляционные проекции (ORM);
· для PHP разработаны средства шаблонирования web-страниц, позволяющие эффективно разделить представление от модели в духе MVC, например Smarty[4];
3 СТРУКТУРА БАЗЫ ДАННЫХ
Таблица ` anketa ` :- Предназначена для хранения параметров анкет
`idank` int(11) NOT NULL auto_increment,
Унифицированный номер анкеты. Используется как PK, не может быть не заполнено, автоматическое увеличение поля, целочисленное.
`title` varchar(100) NOT NULL default '',
Текст названия анкеты. Храниться как уникальный (не допускает одинаковых имен), не может быть не заполнено, по умолчанию значение пробел, символьное(100).
`votes` int(11) NOT NULL default '0',
Поле, содержащее количество ответов на анкеты пользователей, не может быть не заполнено, по умолчанию значение 0, целочисленное.
Таблица ` answer ` : - Таблица предназначена для хранения ответов пользователя на анкеты.
`id` int(11) NOT NULL auto_increment,
Унифицированный номер ответа пользователя на анкету. Используется как PK, не может быть не заполнено, автоматическое увеличение поля, целочисленное.
`iduser` int(11) NOT NULL default '0',
Унифицированный номер пользователя используется как FK к таблице `users`, не может быть не заполнено, по умолчанию значение 0, целочисленное.
`idank` int(11) NOT NULL default '0',
Унифицированный номер анкеты используется как FK к таблице `ankets`, не может быть не заполнено, по умолчанию значение 0, целочисленное.
`idquest` int(11) NOT NULL defa-ult '0',
Унифицированный номер вопроса (для формирования анкет) используется как FK к таблице `quest`, не может быть не заполнено, по умолчанию значение 0, целочисленное.
`answer` varchar(100) NOT NULL default '0',
Записывается текст самого ответа, не может быть не заполнено, по умолчанию значение 0, символьное(100).
Таблица ` quest ` :-Предназначена для хранения вопросов для анкет.