Лекции по "Систе́ма управле́ния ба́зами да́нных "

Автор работы: Пользователь скрыл имя, 21 Января 2015 в 12:18, курс лекций

Описание работы

Систе́ма управле́ния ба́зами да́нных (СУБД) — совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.
Основные функции СУБД:
управление данными во внешней памяти (на дисках);
управление данными в оперативной памяти;

Файлы: 1 файл

Lektsii.docx

— 557.22 Кб (Скачать файл)

 

Типыданных

PHPподдерживаетвосемьпростыхтиповданных.

Четырескалярныхтипа:

  • boolean(логический);
  • integer(целый);
  • float(сплавающейточкой);
  • string(строковый).

Двасмешанныхтипа:

  • array(массив);
  • object(объект).

Идваспециальныхтипа:

  • resource(ресурс);
  • NULL.

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

Типboolean(булевилилогическийтип)

Этотпростейшийтипвыражаетистинностьзначения,тоестьпеременнаяэтоготипаможетиметьтолькодвазначения–истинаTRUEилиложьFALSE.

Чтобыопределитьбулевтип,используютключевоесловоTRUEилиFALSE.Обарегистронезависимы.

<?php

$test=True;

?>

Пример2.5.Логическийтип

Логическиепеременныеиспользуютсявразличныхуправляющихконструкциях(циклах,условияхит.п.,болееподробноречьонихпойдетводнойизследующихлекций).Иметьлогическийтип,т.е.приниматьтолькодвазначения,истинуилиложь,могуттакжеинекоторыеоператоры(например,операторравенства).Онитакжеиспользуютсявуправляющихконструкцияхдляпроверкикаких-либоусловий.Например,вусловнойконструкциипроверяетсяистинностьзначенияоператораилипеременнойивзависимостиотрезультатапроверкивыполняютсятеилииныедействия.Здесьусловиеможетбытьистинноилиложно,чтокакразиотражаетпеременнаяиоператорлогическоготипа.

<?php

//Оператор'=='проверяетравенство

//ивозвращает

//булевозначение

if($know==False){//если$know

//имеетзначение

//false

echo"ИзучайPHP!";

}

if(!$know){//тожесамое,что

//ивыше,т.е.проверка

//имеетли$knowзначение

//false

echo"ИзучайPHP!";

}

/*оператор==проверяет,совпадаетли

значениепеременной$knowсострокой

"ИзучайPHP".Еслисовпадает,то

возвращаетtrue,иначе–false.

Есливозвращеноtrue,товыполняется

то,чтовнутрифигурныхскобок*/

if($know=="ИзучайPHP")

{echo"Начализучать";}

?>

Пример2.6.Использованиелогическоготипа

Типinteger(целые)

ЭтоттипзадаетчислоизмножествацелыхчиселZ={...,-2,-1,0,1,2,...}.Целыемогутбытьуказанывдесятичной,шестнадцатеричнойиливосьмеричнойсистемесчисления,пожеланиюспредшествующимзнаком"-"или"+".

Есливыиспользуетевосьмеричнуюсистемусчисления,выдолжныпредваритьчисло0(нулем),дляиспользованияшестнадцатеричнойсистемынужнопоставитьпередчислом0x.

<?php

#десятичноечисло

$a=1234;

#отрицательноечисло

$a=-123;

#восьмеричноечисло(эквивалентно

#83вдесятичнойсистеме)

$a=0123;

#шестнадцатеричноечисло(эквивалентно

#26вдесятичнойсистеме)

$a=0x1A;

?>

Размерцелогозависитотплатформы,хотя,какправило,максимальноезначениеоколодвухмиллиардов(это32-битноезнаковое).БеззнаковыецелыеPHPнеподдерживает.

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

ВPHPнесуществуетоператораделенияцелых.Результатом1/2будетчислосплавающейточкой0.5.Выможетепривестизначениекцелому,чтовсегдаокругляетеговменьшуюсторону,либоиспользоватьфункциюround(),округляющуюзначениепостандартнымправилам.Дляпреобразованияпеременнойкконкретномутипунужнопередпеременнойуказатьвскобкахнужныйтип.Например,дляпреобразованияпеременной$a=0.5кцеломутипунеобходимонаписать(integer)(0.5)или(integer)$aилииспользоватьсокращеннуюзапись(int)(0.5).Возможностьявногоприведениятиповпотакомупринципусуществуетдлявсехтиповданных(конечно,невсегдазначениеодноготипаможноперевестивдругойтип).Мынебудемуглублятьсявовсетонкостиприведениятипов,посколькуPHPделаетэтоавтоматическивзависимостиотконтекста.

Типfloat(числасплавающейточкой)

Числасплавающейточкой(онижечисладвойнойточностиилидействительныечисла)могутбытьопределеныприпомощилюбогоизследующихсинтаксисов:

<?php

$a=1.234;

$b=1.2e3;

$c=7E-10;

?>

Размерчисласплавающейточкойзависитотплатформы,хотямаксимум,какправило,~1.8e308сточностьюоколо14десятичныхцифр.

Типstring(строки)

Строка–этонаборсимволов.ВPHPсимвол–этотожесамое,чтобайт,этозначит,чтосуществуетровно256различныхсимволов.Этотакжеозначает,чтоPHPнеимеетвстроеннойподдержкиUnicode.ВPHPпрактическинесуществуетограниченийнаразмерстрок,поэтомунетабсолютноникакихпричинбеспокоитьсяобихдлине.

СтрокавPHPможетбытьопределенатремяразличнымиспособами:

  • спомощьюодинарныхкавычек;
  • спомощьюдвойныхкавычек;
  • heredoc-синтаксисом.
Одинарныекавычки

Простейшийспособопределитьстроку–этозаключитьееводинарныекавычки"'".Чтобыиспользоватьодинарнуюкавычкувнутристроки,какивомногихдругихязыках,переднейнеобходимопоставитьсимволобратнойкосойчерты"\",т.е.экранироватьее.Еслиобратнаякосаячертадолжнаидтипередодинарнойкавычкойлибобытьвконцестроки,необходимопродублироватьее"\\'".

Есливнутристроки,заключеннойводинарныекавычки,обратныйслэш"\"встречаетсяпередлюбымдругимсимволом(отличнымот"\"и"'"),тоонрассматриваетсякакобычныйсимволивыводится,какивсеостальные.Поэтомуобратнуюкосуючертунеобходимоэкранировать,толькоеслионанаходитсявконцестроки,передзакрывающейкавычкой.

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

<?php

echo'Такжевыможетевставлятьвстроки

символновойстрокитакимобразом,

посколькуэтонормально';

 

//Выведет:Чтобывывести'надо

//переднейпоставить\

echo'Чтобывывести\'надоперед'.

'нейпоставить\\';

//Выведет:ВыхотитеудалитьC:\*.*?

echo'ВыхотитеудалитьC:\\*.*?';

//Выведет:Этоневставит:\nновуюстроку

echo'Этоневставит:\nновуюстроку';

//Выведет:Переменные$expandтакже

//$eitherнеподставляются

echo'Переменные$expandтакже$either'.

'неподставляются';

?>

Пример2.7.Использованиеуправляющихпоследовательностей

Двойныекавычки

Еслистроказаключенавдвойныекавычки""",PHPраспознаетбольшееколичествоуправляющихпоследовательностейдляспециальныхсимволов.Некоторыеизнихприведенывтаблице2.7.

Таблица2.7.Управляющиепоследовательности

Последовательность

Значение

\n

Новаястрока(LFили0x0A(10)вASCII)

\r

Возвраткаретки(CRили0x0D(13)вASCII)

\t

Горизонтальнаятабуляция(HTили0x09(9)вASCII)

\\

Обратнаякосаячерта

\$

Знакдоллара

\"

Двойнаякавычка


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

Самымважнымсвойствомстроквдвойныхкавычкахявляетсяобработкапеременных.

Heredoc

Другойспособопределениястрок–этоиспользованиеheredoc-синтаксиса.Вэтомслучаестрокадолжнаначинатьсяссимвола<<<,послекоторогоидетидентификатор.Заканчиваетсястрокаэтимжеидентификатором.Закрывающийидентификатордолженначинатьсявпервомстолбцестроки.Крометого,идентификатордолженсоответствоватьтемжеправиламименования,чтоивсеостальныеметкивPHP:содержатьтолькобуквенно-цифровыесимволыизнакподчеркиванияиначинатьсянесцифрыилизнакаподчеркивания.

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

<?php

$str=<<<EOD

Примерстроки,охватывающейнесколько

строчек,сиспользованием

heredoc-синтаксиса

EOD;

//Здесьидентификатор–EOD.Ниже

//идентификаторEOD

$name='Вася';

echo<<<EOD

Менязовут"$name".

EOD;

//этовыведет:Менязовут"Вася".

?>

Пример2.8.Использованиеheredoc-синтаксиса

Замечание:ПоддержкаheredocбыладобавленавPHP4.

Типarray(массив)

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

Определитьмассивможноспомощьюконструкцииarray()илинепосредственнозадаваязначенияегоэлементам.

Определениеприпомощиarray()

array([key]=>value,

[key1]=>value1,...)

Языковаяконструкцияarray()принимаетвкачествепараметровпарыключ=>значение,разделенныезапятыми.Символ=>устанавливаетсоответствиемеждузначениемиегоключом.Ключможетбытькакцелымчислом,такистрокой,азначениеможетбытьлюбогоимеющегосявPHPтипа.Числовойключмассивачастоназываютиндексом.ИндексированиемассивавPHPначинаетсяснуля.Значениеэлементамассиваможнополучить,указавпослеименимассивавквадратныхскобкахключискомогоэлемента.Еслиключмассивапредставляетсобойстандартнуюзаписьцелогочисла,тоонрассматриваетсякакчисло,впротивномслучае–какстрока.Поэтомузапись$a["1"]равносильназаписи$a[1],такжекаки$a["-1"]равносильно$a[-1].

<?php

$books=array("php"=>

"PHPusersguide",

Информация о работе Лекции по "Систе́ма управле́ния ба́зами да́нных "