Главная > Программирование > РНР: настольная книга программиста
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

8.6. Изменение типа

РНР не требует явного определения типа при объявлении переменной, тип переменной определяется по контексту, в котором она используется. Например, если присвоите строковое значение переменной $var, $var станет строкой. А если затем присвоить переменной $var целое значение, то она станет целым.

Примером автоматического преобразования типа в РНР может служить оператор сложения «+». Если какой-либо из операндов является числом с дробной частью (тип double), то затем все операнды оцениваются, как double, и результат будет иметь тип double. Если эти операнды будут интерпретированы как целые (integers), то и результат будет также иметь тип integer. Отметим, что при этом не меняются типы самих операндов, меняется только оценка этих операндов. Например:

$foo = "0"; // $foo является строкой (в таблице символов ASCII — 48)$foo++; // $foo является строкой "1" (в таблице символов ASCII — 49)

$foo += 1; // $foo сейчас является целым (2)

$foo = $foo + 1.3; // $foo сейчас имеет тип double (3.3)

$foo = 5 + "10 Little Piggies"; // $foo является целым (15)

$foo = 5 + "10 Small Pigs"; // $foo является целым (15)


СОВЕТ

Если последние два примера, приведенные выше, кажутся вам не совсем ясными, перечитайте еще раз раздел «Преобразование строк» (см. п. 8.3).


<< Предыдущий параграф Следующий параграф >>
Оглавление