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

Типыданных

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делаетэтоавтоматическивзависимостиотконтекста.