1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-23 23:32:16 +01:00
Files
archived-doc-ru/language/types.xml
Mikhail Alferov 1d42c10303 Update e587d06 to En (#1088)
* Update types.xml to en

* Update array.xml to en + infostyle

* Update boolean.xml to en

* Update callable.xml to en

* Update float.xml to en

* Update integer.xml to en

* Update iterable.xml to en

* Update numeric-strings.xml to en

* Update object.xml to en

* Update type-juggling.xml to en
2025-07-14 13:40:31 +03:00

155 lines
6.2 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: e587d0655e426f97b3fcb431453da5030e743b23 Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="language.types" xmlns="http://docbook.org/ns/docbook" annotations="interactive">
<title>Типы</title>
<sect1 xml:id="language.types.intro">
<title>Введение</title>
<para>
Каждое выражение в PHP в зависимости от значения принадлежит конкретному типу из следующего списка:
<itemizedlist>
<listitem><simpara><type>null</type></simpara></listitem>
<listitem><simpara><type>bool</type></simpara></listitem>
<listitem><simpara><type>int</type></simpara></listitem>
<listitem><simpara><type>float</type> (floating-point number)</simpara></listitem>
<listitem><simpara><type>string</type></simpara></listitem>
<listitem><simpara><type>array</type></simpara></listitem>
<listitem><simpara><type>object</type></simpara></listitem>
<listitem><simpara><type>callable</type></simpara></listitem>
<listitem><simpara><type>resource</type></simpara></listitem>
</itemizedlist>
</para>
<para>
PHP динамически типизированный язык, поэтому по умолчанию указывать тип переменной не потребуется;
PHP определит тип переменной во время выполнения. Однако PHP разрешает статически типизировать отдельные составляющие языка
путём <link linkend="language.types.declarations">объявлений типов</link>.
Типы, которые поддерживает PHP, описывает раздел
«<link linkend="language.types.type-system">Система типов</link>».
</para>
<para>
Типы ограничивают виды операций, доступных для выполнения со значениями конкретного типа.
PHP попытается <link linkend="language.types.type-juggling">преобразовать</link> значение в тип, который поддерживает операцию,
если значение выражения или переменной участвует в операции, которую тип значения не поддерживает.
Этот процесс зависит от контекста, в котором обрабатывается значение.
Дополнительную информацию о преобразовании типов даёт раздел «<link linkend="language.types.type-juggling">Жонглирование типами</link>».
</para>
<tip>
<simpara>
<link linkend="types.comparisons">Таблицы сравнения типов</link>
также полезны, поскольку содержат
примеры сравнения значений разных типов.
</simpara>
</tip>
<note>
<simpara>
Принудительно преобразовать результат вычисления выражения в значение конкретного типа
возможно через <link linkend="language.types.typecasting">приведение типов</link>.
Переменную тоже возможно привести на месте к конкретному типу
функцией <function>settype</function>.
</simpara>
</note>
<para>
Значение и тип <link linkend="language.expressions">выражения</link>
проверяют функцией <function>var_dump</function>.
Тип <link linkend="language.expressions">выражения</link>
получают функцией <function>get_debug_type</function>.
Принадлежность выражения конкретному типу проверяют функциями семейства
<literal>is_<replaceable>type</replaceable></literal>.
<example>
<title>Типы</title>
<programlisting role="php">
<![CDATA[
<?php
$a_bool = true; // логическое значение
$a_str = "foo"; // строка
$a_str2 = 'foo'; // строка
$an_int = 12; // целое число
echo get_debug_type($a_bool), "\n";
echo get_debug_type($a_str), "\n";
// Проверить, содержит ли переменная целое число, и увеличить значение на четыре
if (is_int($an_int)) {
$an_int += 4;
}
var_dump($an_int);
// Проверить, содержит ли переменная $a_bool строку, и вывести строковое значение
if (is_string($a_bool)) {
echo "Строка: $a_bool";
}
?>
]]>
</programlisting>
&example.outputs.8;
<screen>
<![CDATA[
bool
string
int(16)
]]>
</screen>
</example>
</para>
<note>
<simpara>
До версии PHP 8.0.0, в которой функция <function>get_debug_type</function> была недоступна,
вызывали функцию <function>gettype</function>,
но она не возвращает канонические названия типов.
</simpara>
</note>
</sect1>
&language.types.type-system;
&language.types.null;
&language.types.boolean;
&language.types.integer;
&language.types.float;
&language.types.string;
&language.types.numeric-strings;
&language.types.array;
&language.types.object;
&language.types.enumerations;
&language.types.resource;
&language.types.callable;
&language.types.mixed;
&language.types.void;
&language.types.never;
&language.types.relative-class-types;
&language.types.singleton;
&language.types.iterable;
&language.types.declarations;
&language.types.type-juggling;
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->