﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>PHP博客-My Labs! PHP</title><link>http://www.phpweblog.net/Laeb/</link><description>Work is Worth Doing of Worth Doing Well.</description><language>zh-cn</language><lastBuildDate>Fri, 19 Mar 2010 07:22:08 GMT</lastBuildDate><pubDate>Fri, 19 Mar 2010 07:22:08 GMT</pubDate><ttl>60</ttl><item><title>布尔值</title><link>http://www.phpweblog.net/Laeb/archive/2007/05/02/1174.html</link><dc:creator>Laeb</dc:creator><author>Laeb</author><pubDate>Wed, 02 May 2007 12:54:00 GMT</pubDate><guid>http://www.phpweblog.net/Laeb/archive/2007/05/02/1174.html</guid><description><![CDATA[
		<p>这是最简单的类型。布尔值表示的是一个真值。它既可以是 TRUE 也可以是 FALSE。</p>
		<p>提示：布尔值类型在 PHP 4 中才被引入。</p>
		<h4>语法</h4>
		<p>如果要从字面上指定一个布尔值，可以使用关键字 TRUE 或者 FALSE。这两个值对于字母大小写不敏感。</p>
		<pre>&lt;?php
$foo = True; // 把 TRUE 值赋给变量 $foo
?&gt;</pre>
		<p>通常你会使用一些类型和操作符来返回一个布尔值，然后把它传递给控制结构。</p>
		<pre>&lt;?php
// == 是一个测试等式并且返回布尔值的操作符
if ($action == "show_version") {
    echo "The version is 1.23";
}

// 这不是必需的...
if ($show_separators == TRUE) {
    echo "&lt;hr&gt;\n";
}

// ... 因为你完全可以这样编写
if ($show_separators) {
    echo "&lt;hr&gt;\n";
}
?&gt;</pre>
		<h4>转换成布尔值</h4>
		<p>如果要明确地把一个值转换成布尔值，就可以使用 (bool) 或者 (boolean) 转换。但是，在多数情况下你不需要使用这个转换，因为布尔值会自动进行转换，如果某个操作符，功能或者控制结构需要一个布尔值参数的话。</p>
		<p>参考［类型戏法］。</p>
		<p>在转换到布尔值的时候，下列值就会被考虑成 FALSE：</p>
		<ul>
				<li>布尔值 FALSE 自身</li>
				<li>整数 0（零）</li>
				<li>浮点数 0.0（零）</li>
				<li>空字符串，以及字符串［0］</li>
				<li>包含零个元素的数组</li>
				<li>零个成员变量的对象（只在 PHP 4 中有效）</li>
				<li>特殊类型 NULL（包括未设置的变量）</li>
				<li>从空标记那里创建的 SimpleXML 对象</li>
		</ul>
		<p>每种其他值都会被考虑成 TRUE（包括任何资源）。</p>
		<p>注意：-1 会被考虑成 TRUE，与任何其他非零（不论负数还是正数）数一样！</p>
		<pre>&lt;?php
var_dump((bool) "");        // 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)
?&gt;</pre>
<img src ="http://www.phpweblog.net/Laeb/aggbug/1174.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/Laeb/" target="_blank">Laeb</a> 2007-05-02 20:54 <a href="http://www.phpweblog.net/Laeb/archive/2007/05/02/1174.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>介绍</title><link>http://www.phpweblog.net/Laeb/archive/2007/04/06/1074.html</link><dc:creator>Laeb</dc:creator><author>Laeb</author><pubDate>Fri, 06 Apr 2007 09:55:00 GMT</pubDate><guid>http://www.phpweblog.net/Laeb/archive/2007/04/06/1074.html</guid><description><![CDATA[
		<p>PHP 支持八种原始类型。</p>
		<p>四种标题类型：</p>
		<ul>
				<li>boolean 
</li>
				<li>integer 
</li>
				<li>float（浮点数，还有［double］） 
</li>
				<li>string </li>
		</ul>
		<p>两种混合类型：</p>
		<ul>
				<li>array 
</li>
				<li>object </li>
		</ul>
		<p>还有最后两种特殊类型：</p>
		<ul>
				<li>resource 
</li>
				<li>NULL </li>
		</ul>
		<p>这个手册同样为易读性原因而引入了一些伪类型：</p>
		<ul>
				<li>mixed 
</li>
				<li>number 
</li>
				<li>callback </li>
		</ul>
		<p>你同样可以找到 double 类型的一些参考。考虑到 double 与 float 是一样的，因此这两种名称的存在只是由于一些历史原因。</p>
		<p>变量的类型通常不是由程序员设置的；而是由 PHP 依赖于变量被使用的环境并且在运行时才被确定。</p>
		<p>提示：如果你想要检验一个特定表达式的类型和值，可以使用 var_dump()。</p>
		<p>提示：如果你想要一个人类可读的简单类型呈现来进行调试，就可以使用 gettype()。如果要检查一种特定的类型，就不要使用 gettype()，而是使用 is_type 函数。如下所示：</p>
		<pre>&lt;?php
$a_bool = TRUE;   // boolean
$a_str  = "foo";  // string
$a_str2 = 'foo';  // string
$an_int = 12;     // integer

echo gettype($a_bool); // 打印出：boolean
echo gettype($a_str);  // 打印出：string

// 如果这是一个 integer，就把它加四
if (is_int($an_int)) {
    $an_int += 4;
}

// 如果 $bool 是一个 string，就打印它
// （不会打印出任何内容）
if (is_string($a_bool)) {
    echo "String: $a_bool";
}
?&gt;</pre>
		<p>如果你喜欢强制把一个变量转换成另一种特定类型，那么你既可以使用变量转换也可以使用 settype() 函数。</p>
		<p>注意到变量可能在特定的情况下由于不同的值而被评估，并且依赖于它此时的类型。关于更多信息，参考［类型戏法］部分。同样，你可能对查看类型比较列表比较感兴趣，因为它们提供范例来比较若干相关的类型。</p>
<img src ="http://www.phpweblog.net/Laeb/aggbug/1074.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/Laeb/" target="_blank">Laeb</a> 2007-04-06 17:55 <a href="http://www.phpweblog.net/Laeb/archive/2007/04/06/1074.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>注释</title><link>http://www.phpweblog.net/Laeb/archive/2007/04/04/1065.html</link><dc:creator>Laeb</dc:creator><author>Laeb</author><pubDate>Wed, 04 Apr 2007 13:50:00 GMT</pubDate><guid>http://www.phpweblog.net/Laeb/archive/2007/04/04/1065.html</guid><description><![CDATA[
		<p>PHP 支持 C，C++ 与 Unix 命令解释器风格（Perl 风格）的注释。例如：</p>
		<pre>&lt;?php
    echo 'This is a test'; // 这是一个单行的 C++ 风格注释
    /* 这是一个多行注释
       这是另一行注释 */
    echo 'This is yet another test';
    echo 'One Final Test'; # 这是单行的命令解释器风格注释
?&gt;</pre>
		<p>单行注释风格只可以注释到一行或者当前的 PHP 代码块的结尾，并且在任何其他注释之前。这表示 // ... ?&gt; 或者 # ... ?&gt; 之后的 HTML 代码将会被打印。并且 ?&gt; 还会中断 PHP 模式并且返回到 HTML 模式，而 // 或者 # 不会对其产生任何影响。如果 asp_tags 配置指令被启用，那么它会表现成像 // %&gt; 与 # %&gt; 一样。但是 &lt;/script&gt; 标记不会在一个单行注释中断 PHP 模式。</p>
		<pre>&lt;h1&gt;This is an &lt;?php # echo 'simple';?&gt; example.&lt;/h1&gt;
&lt;p&gt;The header above will say 'This is an  example'.&lt;/p&gt;</pre>
		<p>C 风格注释遇到第一个 */ 的时候被终止。要确保你没有嵌套使用 C 风格注释。因为这样做容易在你尝试注释出一大块代码的时候造成误解。</p>
		<pre>&lt;?php
 /* 
    echo 'This is a test'; /* 这个注释将导致一个问题 */
 */
?&gt;</pre>
<img src ="http://www.phpweblog.net/Laeb/aggbug/1065.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/Laeb/" target="_blank">Laeb</a> 2007-04-04 21:50 <a href="http://www.phpweblog.net/Laeb/archive/2007/04/04/1065.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>分离说明</title><link>http://www.phpweblog.net/Laeb/archive/2007/04/01/1049.html</link><dc:creator>Laeb</dc:creator><author>Laeb</author><pubDate>Sun, 01 Apr 2007 10:39:00 GMT</pubDate><guid>http://www.phpweblog.net/Laeb/archive/2007/04/01/1049.html</guid><description><![CDATA[<p>与 C 或者 Perl 一样，PHP 需要在每条语句的后面用一个分号来指示已经结束。PHP 代码块的关闭标记会自动表示一个分号；你不需要用分号来结束 PHP 块中的最后一行代码。该块的结束标记将会包括被延伸的直接新行，如果呈现了的话。</p><pre>&lt;?php
    echo 'This is a test';
?&gt;

&lt;?php echo 'This is a test' ?&gt;

&lt;?php echo 'We omitted the last closing tag';</pre><p>提示：文件未尾的 PHP 块结束标记是可选的，并且在有些情况下使用 include() 或者 require() 的时候对它的忽略是有用的，因此多余的空白不会出现在文件的未尾，并且你仍然可以把头信息添加到稍后的回应中。这同样也是很方便的，如果你使用了输出缓存的话，并且不想看到由被包括文件而在被产生内容的未尾添加了多余的空白。</p><img src ="http://www.phpweblog.net/Laeb/aggbug/1049.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/Laeb/" target="_blank">Laeb</a> 2007-04-01 18:39 <a href="http://www.phpweblog.net/Laeb/archive/2007/04/01/1049.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HTML 转码</title><link>http://www.phpweblog.net/Laeb/archive/2007/03/28/1040.html</link><dc:creator>Laeb</dc:creator><author>Laeb</author><pubDate>Wed, 28 Mar 2007 12:32:00 GMT</pubDate><guid>http://www.phpweblog.net/Laeb/archive/2007/03/28/1040.html</guid><description><![CDATA[<p>在 PHP 处理文件的时候，它会寻找打开与关闭标记，从而告诉 PHP 开始并且结束它们之间的代码解释。以这种方式的处理允许 PHP 被嵌入到所有不同类型的文档中，而打开与关闭标记对之外的一切都会被 PHP 解析器忽略一样。多数时候你将看到 PHP 被嵌入在 HTML 文档中，与这个范例一样。</p><pre>&lt;p&gt;This is going to be ignored.&lt;/p&gt;
&lt;?php echo 'While this is going to be parsed.'; ?&gt;
&lt;p&gt;This will also be ignored.&lt;/p&gt;</pre><p>你同样可以使用更多高级结构：</p><h5>高级的转码</h5><pre>&lt;?php
if ($expression) { 
    ?&gt;
    &lt;strong&gt;This is true.&lt;/strong&gt;
    &lt;?php 
} else { 
    ?&gt;
    &lt;strong&gt;This is false.&lt;/strong&gt;
    &lt;?php 
}
?&gt;</pre><p>这会与所预期的一样工作，因为在 PHP 找到结束标记 ?&gt; 的时候，它简单地开始输出它所找到的一切，直到它找到其他打开标记为止。这里所提供的范例是被策划的，当然，但是至于输出庞大的文本块，跳出 PHP 解析模式通常是比通过 echo() 或者 print() 发送所有文本更加有效率的做法。</p><p>这里有四种不同的打开与关闭标记对可以在 PHP 中被使用。&lt;?php ?&gt; 与 &lt;script language="php"&gt; &lt;/script&gt; 这两种都是始终可用的。而另外两种则是短标记与 ASP 风格标记，也都可以从 php.ini 配置文件中被启用或者禁用。同样，虽然有些人发现短标记与 ASP 风格标记是更加方便的，但是它们的可移植能力较少，并且通常不是被建议的。</p><p>提示：同样注意如果你把 PHP 嵌入到 XML 或者 XHTML 中，你就需要使用 &lt;?php ?&gt; 标记来遵循标准。</p><h5>PHP 打开与关闭标记</h5><pre>1.  &lt;?php echo 'if you want to serve XHTML or XML documents, do like this'; ?&gt;

2.  &lt;script language="php"&gt;
        echo 'some editors (like FrontPage) don\'t
              like processing instructions';
    &lt;/script&gt;

3.  &lt;? echo 'this is the simplest, an SGML processing instruction'; ?&gt;
    &lt;?= expression ?&gt; This is a shortcut for "&lt;? echo expression ?&gt;"

4.  &lt;% echo 'You may optionally use ASP-style tags'; %&gt;
    &lt;%= $variable; # This is a shortcut for "&lt;% echo . . ." %&gt;</pre><p>虽然范例中的这些标记有一两种始终都是可用的，但是范例一却是最常被使用的，而范例二则是被建议的。</p><p>短标记（范例三）只在它们通过 php.ini 配置文件指令 short_open_tag 而被启用的时候才是可用的，或者如果 PHP 以 --enable-short-tags 选项而被配置。</p><p>提示：如果你使用的是 PHP 3，那么你同样可以通过 short_tags() 函数来启用短标记。但是这只在 PHP 3 中才是可用的！</p><p>ASP 风格标记（范例四）只在它们通过 php.ini 配置文件指令 asp_tags 而被启用的时候才是可用的。</p><p>提示：对于 ASP 标记的支持在 3.0.4 版本中才被加入。</p><p>提示：在为了重新分配而开发应用程序或者库的时候应该避免使用短标记，或者在布署在不能够被你所控制的 PHP 服务器上的时候，因为短标记可能不被目标服务器所支持。在出于可移植而重新分配代码的时候，应该确保没有使用短标记。</p><img src ="http://www.phpweblog.net/Laeb/aggbug/1040.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.phpweblog.net/Laeb/" target="_blank">Laeb</a> 2007-03-28 20:32 <a href="http://www.phpweblog.net/Laeb/archive/2007/03/28/1040.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>