uTools-Manuals/docs/php/language.types.intro.html
2019-04-08 23:22:26 +08:00

175 lines
8.5 KiB
HTML
Raw 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.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>简介</title>
</head>
<div id="layout">
<div id="layout-content"><div id="language.types.intro" class="sect1">
<h2 class="title">简介</h2>
<p class="simpara">
PHP 支持 9 种原始数据类型。
</p>
<p class="para">
四种标量类型:
</p>
<ul class="itemizedlist">
<li class="listitem">
<span class="simpara">
<span class="type"><a href="language.types.boolean.html" class="type boolean">boolean</a></span>(布尔型)
</span>
</li>
<li class="listitem">
<span class="simpara">
<span class="type"><a href="language.types.integer.html" class="type integer">integer</a></span>(整型)
</span>
</li>
<li class="listitem">
<span class="simpara">
<span class="type"><a href="language.types.float.html" class="type float">float</a></span>(浮点型,也称作 <span class="type"><a href="language.types.float.html" class="type double">double</a></span>)
</span>
</li>
<li class="listitem">
<span class="simpara">
<span class="type"><a href="language.types.string.html" class="type string">string</a></span>(字符串)
</span>
</li>
</ul>
<p class="para">
三种复合类型:
</p>
<ul class="itemizedlist">
<li class="listitem">
<span class="simpara">
<span class="type"><a href="language.types.array.html" class="type array">array</a></span>(数组)
</span>
</li>
<li class="listitem">
<span class="simpara">
<span class="type"><a href="language.types.object.html" class="type object">object</a></span>(对象)
</span>
</li>
<li class="listitem">
<span class="simpara">
<span class="type"><a href="language.types.callable.html" class="type callable">callable</a></span>(可调用)
</span>
</li>
</ul>
<p class="para">
最后是两种特殊类型:
</p>
<ul class="itemizedlist">
<li class="listitem">
<span class="simpara">
<span class="type"><a href="language.types.resource.html" class="type resource">resource</a></span>(资源)
</span>
</li>
<li class="listitem">
<span class="simpara">
<span class="type"><a href="language.types.null.html" class="type NULL">NULL</a></span>(无类型)
</span>
</li>
</ul>
<p class="para">
为了确保代码的易读性,本手册还介绍了一些<a href="language.pseudo-types.html" class="link">伪类型</a>
</p>
<ul class="itemizedlist">
<li class="listitem">
<span class="simpara">
<span class="type"><a href="language.pseudo-types.html#language.types.mixed" class="type mixed">mixed</a></span>(混合类型)
</span>
</li>
<li class="listitem">
<span class="simpara">
<span class="type"><a href="language.pseudo-types.html#language.types.number" class="type number">number</a></span>(数字类型)
</span>
</li>
<li class="listitem">
<span class="simpara">
<span class="type"><a href="language.pseudo-types.html#language.types.callback" class="type callback">callback</a></span>(回调类型,又称为 <span class="type"><a href="language.types.callable.html" class="type callable">callable</a></span>
</span>
</li>
<li class="listitem">
<span class="simpara">
<span class="type"><a href="language.pseudo-types.html#language.types.array-object" class="type array|object">array|object</a></span>(数组 | 对象类型)
</span>
</li>
<li class="listitem">
<span class="simpara">
<span class="type"><span class="type void">void</span></span> (无类型)
</span>
</li>
</ul>
<p class="para">
以及伪变量 <code class="parameter">$...</code>
</p>
<p class="simpara">
可能还会读到一些关于“双精度double”类型的参考。实际上
double 和 float 是相同的,由于一些历史的原因,这两个名称同时存在。
</p>
<p class="simpara">
变量的类型通常不是由程序员设定的,确切地说,是由 PHP
根据该变量使用的上下文在运行时决定的。
</p>
<blockquote class="note"><p><strong class="note">Note</strong>:
<span class="simpara">
如果想查看某个<a href="language.expressions.html" class="link">表达式</a>的值和类型,用
<span class="function"><a href="var_dump.html" class="function">var_dump()</a></span> 函数。
</span>
<p class="para">
如果只是想得到一个易读懂的类型的表达方式用于调试,用
<span class="function"><a href="gettype.html" class="function">gettype()</a></span> 函数。要检验某个类型,<em class="emphasis">不要</em>
<span class="function"><a href="gettype.html" class="function">gettype()</a></span>,而用 <em>is_<span class="replaceable">type</span></em> 函数。以下是一些范例:
</p>
<div class="informalexample">
<div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br />$a_bool&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">TRUE</span><span style="color: #007700">;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;布尔值&nbsp;boolean<br /></span><span style="color: #0000BB">$a_str&nbsp;&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"foo"</span><span style="color: #007700">;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;字符串&nbsp;string<br /></span><span style="color: #0000BB">$a_str2&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'foo'</span><span style="color: #007700">;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;字符串&nbsp;string<br /></span><span style="color: #0000BB">$an_int&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">12</span><span style="color: #007700">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;整型&nbsp;integer<br /><br /></span><span style="color: #007700">echo&nbsp;</span><span style="color: #0000BB">gettype</span><span style="color: #007700">(</span><span style="color: #0000BB">$a_bool</span><span style="color: #007700">);&nbsp;</span><span style="color: #FF8000">//&nbsp;输出:&nbsp;&nbsp;boolean<br /></span><span style="color: #007700">echo&nbsp;</span><span style="color: #0000BB">gettype</span><span style="color: #007700">(</span><span style="color: #0000BB">$a_str</span><span style="color: #007700">);&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;输出:&nbsp;&nbsp;string<br /><br />//&nbsp;如果是整型,就加上&nbsp;4<br /></span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">is_int</span><span style="color: #007700">(</span><span style="color: #0000BB">$an_int</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$an_int&nbsp;</span><span style="color: #007700">+=&nbsp;</span><span style="color: #0000BB">4</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #FF8000">//&nbsp;如果&nbsp;$bool&nbsp;是字符串,就打印出来<br />//&nbsp;(啥也没打印出来)<br /></span><span style="color: #007700">if&nbsp;(</span><span style="color: #0000BB">is_string</span><span style="color: #007700">(</span><span style="color: #0000BB">$a_bool</span><span style="color: #007700">))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"String:&nbsp;</span><span style="color: #0000BB">$a_bool</span><span style="color: #DD0000">"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
</div>
</div>
</p></blockquote>
<p class="simpara">
如果要将一个变量强制转换为某类型,可以对其使用<a href="language.types.type-juggling.html#language.types.typecasting" class="link">强制转换</a>或者 <span class="function"><a href="settype.html" class="function">settype()</a></span> 函数。
</p>
<p class="simpara">
注意变量根据其当时的类型在特定场合下会表现出不同的值。更多信息见<a href="language.types.type-juggling.html" class="link">类型转换的判别</a>。此外,还可以参考
<a href="types.comparisons.html" class="link">PHP 类型比较表</a>看不同类型相互比较的例子。
</p>
</div></div></div></body></html>