Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции БДиСУБД.docx
Скачиваний:
17
Добавлен:
19.11.2019
Размер:
494.91 Кб
Скачать

Типobject(объекты)

Объектытипданных,пришедшийизобъектно-ориентированногопрограммирования(ООП).СогласнопринципамООП,класс–этонаборобъектов,обладающихопределеннымисвойствамииметодамиработысним,аобъектсоответственно–экземпляркласса.Например,программисты–этокласслюдей,которыепишутпрограммы,изучаюткомпьютернуюлитературуи,крометого,каквселюди,имеютимяифамилию.Теперь,есливзятьодногоконкретногопрограммиста,ВасюИванова,томожносказать,чтоонявляетсяобъектомклассапрограммистов,обладаеттемижесвойствами,чтоидругиепрограммисты,тожеимеетимя,пишетпрограммыит.п.

ВPHPдлядоступакметодамобъектаиспользуетсяоператор->.Дляинициализацииобъектаиспользуетсявыражениеnew,создающеевпеременнойэкземпляробъекта.

<?php

//создаемкласслюдей

classPerson

{

//метод,которыйобучаетчеловекаPHP

functionknow_php()

{

echo"ТеперьязнаюPHP";

}

}

$bob=newPerson;//создаемобъект

//классачеловек

$bob->know_php();//обучаемегоPHP

?>

Пример2.12.ОбъектывPHP

БолееподробнореализациюпринциповООПвязыкеPHPмырассмотримводнойизследующихлекций.

Типresource(ресурсы)

Ресурс–этоспециальнаяпеременная,содержащаяссылкунавнешнийресурс(например,соединениесбазойданных).Ресурсысоздаютсяииспользуютсяспециальнымифункциями(например,mysql_connect(),pdf_new()ит.п.).

ТипNull

СпециальноезначениеNULLговоритотом,чтопеременнаянеимеетзначения.

ПеременнаясчитаетсяNULL,если:

  • ейбылаприсвоенаконстантаNULL($var=NULL);

  • ейещенебылоприсвоенокакое-либозначение;

  • онабылаудаленаспомощьюunset().

СуществуеттолькооднозначениетипаNULL–регистронезависимоеключевоесловоNULL.

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

Теперьвернемсякзадаче,которуюмыпоставиливсамомначалелекции.Напомним,чтоонасостоялавсоставленииписьмаразнымлюдямпоповодуразныхсобытий.Попытаемсяиспользоватьдлярешенияэтойзадачиизученныесредства–переменные,операторы,константы,строкиимассивы.Взависимостиотполучателяизменяетсясобытиеиобращение,указанныевписьме,поэтомуестественновынестиэтивеличинывпеременные.Болеетого,посколькусобытийилюдеймного,удобноиспользоватьпеременныетипамассив.Подписьвписьмеостаетсяпостояннойвсегда,поэтомулогичнозадатьеекакконстанту.Чтобынеписатьслишкомдлинныеигромоздкиестроки,используемоператорконкатенации.Итак,вотчтополучилось:

<?

//пустьнашаподпись

//будетконстантой

define("SIGN","Суважением,Вася");

//зададиммассивылюдейисобытий

$names=array("ИванИванович",

"ПетрПетрович",

"СеменСеменович");

$events=array(

"f"=>"деньоткрытыхдверей",

"o"=>"открытиевыставки",

"p"=>"балвыпускников");

//составимтекстприглашения

$str="Уважаемый(ая),$names[0].";

$str.="<br>ПриглашаемВасна".

$events["f"];

$str.="<br>".SIGN;

echo$str;//выведемтекстнаэкран

?>

ВзаимодействиеPHPиMySQL

ВдистрибутивPHPвходитрасширение,содержащеевстроенныефункциидляработысбазойданныхMySQL.ВэтойлекциимыпознакомимсяснекоторымиосновнымифункциямидляработысMySQL,которыепотребуютсядлярешениязадачпостроенияweb-интерфейсовсцельюотображенияинаполнениябазыданных.Возникаетвопрос,зачемстроитьтакиеинтерфейсы?Длятогочтобывноситьинформациювбазуданныхипросматриватьеесодержимоемоглилюди,незнакомыесязыкомзапросовSQL.Приработесweb-интерфейсомдлядобавленияинформациивбазуданныхчеловекунужнопростоввестиэтиданныевhtml-формуиотправитьихнасервер,анашскриптсделаетвсеостальное.Адляпросмотрасодержимоготаблицдостаточнопростощелкнутьпоссылкеизайтинанужнуюстраницу.

ДлянаглядностибудемстроитьэтиинтерфейсыдлятаблицыArtifacts,вкоторойсодержитсяинформацияобэкспонатахвиртуальногомузеяинформатики.Впредыдущейлекциимыужеприводилиструктуруэтойколлекции,атакжееесвязисколлекциямиописанияперсон(Persons)иизображений(Images).Напомним,чтокаждыйэкспонатвколлекцииArtifactsописываетсяспомощьюследующиххарактеристик:

  • название(title);

  • автор(author);

  • описание(description);

  • альтернативноеназвание(alternative);

  • изображение(photo).

Названиеиальтернативноеназваниеявляютсястрокамименеечем255символовдлиной(т.е.имеюттипVARCHAR(255)),описание-текстовоеполе(имееттипTEXT),авполях"автор"и"изображение"содержатсяидентификаторыавтораизколлекцииPersonsиизображенияэкспонатаизколлекцииImagesсоответственно.