﻿<h1 class=p1>Типы данных в РНР. Преобразование типов</h1>
<p class=text>Как уже было сказано, PHP предоставляет определенную гибкость в отношении типов переменных, т.е. с одной и той же переменной на протяжении программы можно работать и как со строкой, и как с числом. Однако, несмотря на это в РНР существуют набор основных типов данных, которые могут явно указываться при работе с переменными:
</p>
<ul>
  <li><b>integer</b>; </li>
  <li><b>string</b>; </li>
  <li><b>boolean</b>; </li>
  <li><b>double</b>; </li>
  <li><b>array</b>; </li>
  <li><b>object</b>; </li>
</ul>
<p class=text>Есть функция <b>gettype</b>(), возвращающая тип, который РНР назначил переменной:</p>
<blockquote>
<pre>
<em class=red>&lt;?</em>
   <b>$var</b> = &quot;5&quot;;
   <b>$var1</b> = 5;
   <em class=gr>echo</em>(<b>gettype</b>(<b>$var</b>));
   <em class=gr>echo</em> &quot;&lt;br&gt;&quot;;
   <em class=gr>echo</em>(<b>gettype</b>(<b>$var1</b>));
<em class=red>?&gt;</em>
</pre>
</blockquote>
<p class=text>В первом случае РНР вернет <b>string</b>, во втором <b>integer</b>.</p>
<p class=text>Существует также функция <b>settype</b>(), которая явно устанавливает тип:</p>
<blockquote>
<pre>
<em class=red>&lt;?</em>
   <b>$var</b> = &quot;<b>5</b>&quot;;
   <em class=gr>echo</em>(<b>gettype</b>(<b>$var</b>));
   <b>settype</b>(<b>$var</b>,integer);
   <em class=gr>echo</em> "&lt;br&gt;";
   <em class=gr>echo</em>(<b>gettype</b>(<b>$var</b>));
<em class=red>?&gt;</em>
</pre>
</blockquote>
<p class=text>Выполнение этого фрагмента кода приведет к такому же результату, как и предыдущего.
</p>
<p class=text>Кроме функции <b>settype</b>() преобразование типов в РНР можно осуществлять при помощи операторов преобразования типов. Преобразование типов осуществляется путем указания перед переменной ее нового типа, взятого в скобки:
</p>
<blockquote>
<b>$var</b> = (int)<b>$var</b>;
</blockquote>
<p class=text>Соответственно, выполнение следующего кода приведет к тому, что РНР вернет integer:
</p>
<blockquote>
<pre>
<em class=red>&lt;?</em>
   <b>$var</b> = &quot;<b>5</b>&quot;; // <em class=comnt>тип string</em>
   <b>$var</b> = (int)<b>$var</b>; // <em class=comnt>преобразуем в int</em>
   <em class=gr>echo</em>(<b>gettype</b>(<b>$var</b>));
<em class=red>?&gt;</em>
</pre>
</blockquote>