1
0
mirror of https://github.com/php/doc-uk.git synced 2026-03-24 07:02:12 +01:00
Files
archived-doc-uk/language/types.xml
2025-03-03 17:41:18 +07:00

163 lines
6.0 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: 117340b0d72bc8884290450ae8b89643528e0f58 Maintainer: mproshchuk Status: ready -->
<chapter xml:id="language.types" xmlns="http://docbook.org/ns/docbook">
<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> (число з плаваючою точкою)</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 — це динамічно типізована мова, тобто не потрібно вказувати тип змінної,
оскільки він визначається під час виконання коду. Тим не менш, можливо
статично типувати деякі аспекти мови за допомогою
<link linkend="language.types.declarations">оголошення типів</link>.
Докладніше про типи: <link linkend="language.types.type-system">Система типів
PHP</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>.
</para>
<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>.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$a_bool = true; // логічний тип (bool)
$a_str = "foo"; // рядковий тип (string)
$a_str2 = 'foo'; // теж рядковий тип
$an_int = 12; // цілочисельний тип (int)
echo get_debug_type($a_bool), "\n";
echo get_debug_type($a_str), "\n";
// Якщо змінна $an_int має цілочисельний тип (тобто integer),
// збільшити її значення на 4
if (is_int($an_int)) {
$an_int += 4;
}
var_dump($an_int);
// Якщо $a_bool має рядковий тип, надрукувати її значення
if (is_string($a_bool)) {
echo "String: $a_bool";
}
?>
]]>
</programlisting>
&example.outputs.8;
<screen>
<![CDATA[
bool
string
int(16)
]]>
</screen>
</informalexample>
</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
-->