mirror of
https://github.com/php/doc-zh.git
synced 2026-03-24 07:02:15 +01:00
168 lines
4.6 KiB
XML
168 lines
4.6 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- $Revision$ -->
|
||
<!-- EN-Revision: f90b26b377a61c76c0f64028e47553e550411d08 Maintainer: Avenger Status: ready -->
|
||
<!-- CREDITS: dallas, Altair, mowangjuanzi, Luffy -->
|
||
<sect1 xml:id="language.types.boolean">
|
||
<title>Boolean 布尔类型</title>
|
||
|
||
<simpara>
|
||
<type>bool</type> 仅有两个值,用于表达真(truth)值,不是 &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 "The version is 1.23";
|
||
}
|
||
|
||
// 这样做是不必要的...
|
||
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>
|
||
要明确地将值转换成 <type>bool</type>,可以用 <literal>(bool)</literal>
|
||
强制转换。通常这不是必需的,因为值在逻辑上下文中使用将会自动解释为 <type>bool</type>
|
||
类型的值。更多信息请阅读<link linkend="language.types.type-juggling">类型转换</link>页面。
|
||
</simpara>
|
||
|
||
<simpara>
|
||
参见<link linkend="language.types.type-juggling">类型转换的判别</link>。
|
||
</simpara>
|
||
|
||
<para>
|
||
当转换为 <type>bool</type> 时,以下值被认为是 &false;:
|
||
</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<simpara>
|
||
<link linkend="language.types.boolean">布尔</link>值 &false; 本身
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
<link linkend="language.types.integer">整型</link>值 <literal>0</literal>(零)
|
||
</simpara>
|
||
</listitem>
|
||
<listitem>
|
||
<simpara>
|
||
<link linkend="language.types.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>
|
||
内部对象的强制转换行为重载为 bool。例如:由不带属性的空元素创建的
|
||
<link linkend="ref.simplexml">SimpleXML</link> 对象。
|
||
</simpara>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>
|
||
所有其它值都被认为是 &true;(包括 <link linkend="language.types.resource">资源</link> 和 <constant>NAN</constant>)。
|
||
</para>
|
||
|
||
<warning>
|
||
<simpara>
|
||
<literal>-1</literal> 和其它非零值(不论正负)一样,被认为是 &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
|
||
-->
|