-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy pathtypes.xml
More file actions
162 lines (148 loc) · 5.99 KB
/
types.xml
File metadata and controls
162 lines (148 loc) · 5.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<?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
-->