Аргерих Л. О языке РНР. Часть 1. Страница 62


)

Типы данных

Несмотря на гибкость РНР в отношении переменных, с которыми можно об­ращаться то как с текстовыми значениями, то как с числами, существует на­бор типов данных, которые назначаются при работе с переменными. Есть следующие восемь типов:

• string

• integer

• double

• array

• boolean

• object

• resource

• unknown

Тип double в РНР соответствует значению с плавающей точкой, хранящему­ся с «двойной точностью». Поскольку в РНР нет чисел с «одинарной точнос- это отличие не имеет большой важности.

Тип, который РНР назначил переменной, можно проверить с помощью

функции gettype():

<?php

$Variable = "This is some text"; |cho(gettype($Variable));

Этот код выводит string.

Можно также установить тип явным образом посредством родственной функции settype(). Ей требуется передать имя переменной и тип, который надо для нее установить:

$Change = "2"; settype($Change, integer); echo(gettype($Change)); echo(SChange);

Преобразование типа

В PHP есть также операторы преобразования типа, которые позволяют ука­зать РНР на необходимость действовать со значением одного типа как если бы оно имело другой тип. Оператор преобразования типа представляет собой имя того типа, к которому требуется преобразовать данные, заключен­ное в круглые скобки:

• (string)

• (integer)

• (double)

• (boolean)

У некоторых из этих операторов есть сокращенные версии:

• (int)

• (bool)

Они используются так: <?php

$а = "123.456";

echo((int)$a); ?>

Этот код выводит 123, потому что РНР преобразовал строковое значение «123.456» в целое число.

При выполнении преобразований РНР иногда ведет себя интересным обра­зом. Рассмотрим следующий код:

SChange = "2 Coffee Candies"; settype($Change( integer); echo(gettype(SChange)); echo($Change);

Вместо ошибки эта программа выводит integer и 2. Для того чтобы получить целое число из текста, последний необходимо избавить от посторонней ин­формации, которую в число преобразовать нельзя, но РНР находит число в начале строки и использует его. Такое явное преобразование типа можно обеспечить без помощи

$Variable1 3;

$Variable2 "2 Coffee Candies"; SSumTotal = JVariablel + JVariable2;

Сумма будет равна 5, потому что РНР обнаруживает операцию сложения и понимает, что таково ваше намерение. Он выполняет преобразование $Vari- able2 в целое число, а затем складывает две переменные. В других языках программирования это легко могло бы привести к ошибке, но в РНР из-за слабой типизации этого не происходит.




Если World Of Warcraft - это ваша любимая игра, без которой вы не представляете своего досуга, тогда вам предлагается быстро и надежно купить голд wow. Такое приобретение позволит вам значительно усилить вашего героя и приобрести большее влияние в общей игре.