-
Notifications
You must be signed in to change notification settings - Fork 79
Expand file tree
/
Copy pathboolean.xml
More file actions
186 lines (164 loc) · 6.07 KB
/
boolean.xml
File metadata and controls
186 lines (164 loc) · 6.07 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
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: fee54c7c435a1664a7a8b0e7b7de7cec4a084c45 Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<sect1 xml:id="language.types.boolean">
<title>Логические значения</title>
<simpara>
Логический тип (<type>bool</type>) принимает только два значения,
которые выражают истинность: &true; или &false;.
</simpara>
<sect2 xml:id="language.types.boolean.syntax">
<title>Синтаксис</title>
<para>
Логические литералы — значения с типом <type>bool</type> — указывают константами &true;
или &false;. Обе константы регистронезависимы.
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$foo = True; // Присвоить переменной $foo значение TRUE
?>
]]>
</programlisting>
</informalexample>
<para>
Часто результат выполнения <link linkend="language.operators">оператора</link>,
который возвращает логическое значение <type>bool</type>, передаётся
<link linkend="language.control-structures">управляющей конструкции</link>.
</para>
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$action = "show_version";
$show_separators = true;
// == — оператор, который проверяет
// эквивалентность и возвращает логическое значение
if ($action == "show_version") {
echo "Версия 1.23";
}
// сравнение со значением true необязательно,...
if ($show_separators == TRUE) {
echo "<hr>\n";
}
// ...потому что у проверки следующего выражения тот же смысл:
if ($show_separators) {
echo "<hr>\n";
}
?>
]]>
</programlisting>
</informalexample>
</sect2>
<sect2 xml:id="language.types.boolean.casting">
<title>Преобразование в логический тип</title>
<simpara>
Оператор <literal>(bool)</literal> явно приводит значение
к логическому типу <type>bool</type>.
Обычно это не требуется, поскольку значение в логическом контексте
автоматически интерпретируется как значение логического типа <type>bool</type>.
Дополнительную информацию даёт раздел
«<link linkend="language.types.type-juggling">Жонглирование типами</link>».
</simpara>
<para>
При преобразовании в логическое значение <type>bool</type>,
следующие значения интерпретируются как
&false;:
</para>
<itemizedlist>
<listitem>
<simpara>
само значение <link linkend="language.types.boolean">boolean</link> &false;
</simpara>
</listitem>
<listitem>
<simpara>
<link linkend="language.types.integer">integer</link> <literal>0</literal> (ноль)
</simpara>
</listitem>
<listitem>
<simpara>
<link linkend="language.types.float">float</link> <literal>0.0</literal> (ноль)
и <literal>-0.0</literal> (минус ноль)
</simpara>
</listitem>
<listitem>
<simpara>
пустая <link linkend="language.types.string">строка</link> <literal>""</literal>
и <link linkend="language.types.string">строка</link> <literal>"0"</literal>
</simpara>
</listitem>
<listitem>
<simpara>
<link linkend="language.types.array">массив</link> без элементов
</simpara>
</listitem>
<listitem>
<simpara>
особый тип <link linkend="language.types.null">NULL</link> (включая
неустановленные переменные)
</simpara>
</listitem>
<listitem>
<simpara>
внутренние объекты, которые перегружают своё поведение приведения к логическому типу.
Например: объекты <link linkend="ref.simplexml">SimpleXML</link>,
которые создали из пустых элементов без атрибутов,
или объекты <classname>GMP</classname>, которые представляют значение
<literal>0</literal>.
</simpara>
</listitem>
</itemizedlist>
<para>
Все остальные значения считаются &true;
(включая <link linkend="language.types.resource">resource</link>
и <constant>NAN</constant>).
</para>
<warning>
<simpara>
Число <literal>-1</literal> PHP оценивает как логическое значение &true;,
как и любое другое ненулевое —
отрицательное или положительное — число!
</simpara>
</warning>
<example>
<title>Приведение к логическому типу</title>
<programlisting role="php">
<![CDATA[
<?php
var_dump((bool) ""); // bool(false)
var_dump((bool) "0"); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)
?>
]]>
</programlisting>
</example>
</sect2>
</sect1>
<!-- 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
-->