设为首页收藏本站language 语言切换
查看: 1278|回复: 0
收起左侧

PHP语言参考 - 常量

[复制链接]
发表于 2010-2-24 13:38:42 | 显示全部楼层 |阅读模式
<DIV class=chapter lang=zh-cn><DIV class=titlepage><DIV><DIV><H1><A name=language.constants></A>第 13 章 常量</H1></DIV></DIV></DIV><H2>目录</H2><DL><DT><U><FONT color=#000099>语法</FONT></U><DT><U><FONT color=#000099>魔术常量</FONT></U></DT></DL><>常量是一个简单值的标识符(名字)。如同其名称所暗示的,在脚本执行期间该值不能改变(除了所谓的<A title=魔术常量 href="http://www.php.net/manual/zh/language.constants.predefined.php"><U><FONT color=#000099>魔术常量</FONT></U></A>,它们其实不是常量)。常量默认为大小写敏感。按照惯例常量标识符总是大写的。 </P><>常量名和其它任何 PHP 标签遵循同样的命名规则。合法的常量名以字母或下划线开始,后面跟着任何字母,数字或下划线。用正则表达式是这样表达的:<VAR>[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*</VAR></P><><DIV class=example><A name=id2662384></A><><B>例 13.1. 合法与非法的常量名</B></P><DIV class=example-contents><DIV class=phpcode><CODE><SPAN class=html><SPAN class=default><FONT face=Courier color=#0000bb>&lt;?php<BR><BR></FONT></SPAN><FONT face=Courier><SPAN class=comment><FONT color=#ff8000>// 合法的常量名<BR></FONT></SPAN><SPAN class=default><FONT color=#0000bb>define</FONT></SPAN><SPAN class=keyword><FONT color=#007700>(</FONT></SPAN><SPAN class=string><FONT color=#dd0000>"FOO"</FONT></SPAN><SPAN class=keyword><FONT color=#007700>,     </FONT></SPAN><SPAN class=string><FONT color=#dd0000>"something"</FONT></SPAN></FONT><FONT face=Courier><SPAN class=keyword><FONT color=#007700>);<BR></FONT></SPAN><SPAN class=default><FONT color=#0000bb>define</FONT></SPAN><SPAN class=keyword><FONT color=#007700>(</FONT></SPAN><SPAN class=string><FONT color=#dd0000>"FOO2"</FONT></SPAN><SPAN class=keyword><FONT color=#007700>,    </FONT></SPAN><SPAN class=string><FONT color=#dd0000>"something else"</FONT></SPAN></FONT><FONT face=Courier><SPAN class=keyword><FONT color=#007700>);<BR></FONT></SPAN><SPAN class=default><FONT color=#0000bb>define</FONT></SPAN><SPAN class=keyword><FONT color=#007700>(</FONT></SPAN><SPAN class=string><FONT color=#dd0000>"FOO_BAR"</FONT></SPAN><SPAN class=keyword><FONT color=#007700>, </FONT></SPAN><SPAN class=string><FONT color=#dd0000>"something more"</FONT></SPAN></FONT><SPAN class=keyword><FONT face=Courier color=#007700>);<BR><BR></FONT></SPAN><FONT face=Courier><SPAN class=comment><FONT color=#ff8000>// 非法的常量名<BR></FONT></SPAN><SPAN class=default><FONT color=#0000bb>define</FONT></SPAN><SPAN class=keyword><FONT color=#007700>(</FONT></SPAN><SPAN class=string><FONT color=#dd0000>"2FOO"</FONT></SPAN><SPAN class=keyword><FONT color=#007700>,    </FONT></SPAN><SPAN class=string><FONT color=#dd0000>"something"</FONT></SPAN></FONT><SPAN class=keyword><FONT face=Courier color=#007700>);<BR><BR></FONT></SPAN><FONT face=Courier><SPAN class=comment><FONT color=#ff8000>// This is valid, but should be avoided:<BR>// PHP may one day provide a magical constant<BR>// that will break your script<BR></FONT></SPAN><SPAN class=default><FONT color=#0000bb>define</FONT></SPAN><SPAN class=keyword><FONT color=#007700>(</FONT></SPAN><SPAN class=string><FONT color=#dd0000>"__FOO__"</FONT></SPAN><SPAN class=keyword><FONT color=#007700>, </FONT></SPAN><SPAN class=string><FONT color=#dd0000>"something"</FONT></SPAN></FONT><FONT face=Courier><SPAN class=keyword><FONT color=#007700>);<BR><BR></FONT></SPAN><SPAN class=default><FONT color=#0000bb>?&gt;</FONT></SPAN></FONT></SPAN></CODE></DIV></DIV></DIV><BR class=example-break><><FONT face=Courier></FONT></P><BLOCKQUOTE><><B>注意: </B>在这里,字母是 a-z,A-Z,以及从 127 到 255(0x7f-0xff)的 ASCII 字符。 </P></BLOCKQUOTE><>和 <A title=预定义变量 href="http://www.php.net/manual/zh/language.variables.predefined.php"><U><FONT color=#000099>superglobals</FONT></U></A> 一样,常量的范围是全局的。不用管作用域就可以在脚本的任何地方访问常量。有关作用得更多信息请阅读手册中的<A title=变量范围 href="http://www.php.net/manual/zh/language.variables.scope.php"><U><FONT color=#000099>变量范围</FONT></U></A>。 </P><DIV class=sect1 lang=zh-cn><DIV class=titlepage><DIV><DIV><H1><A name=language.constants.syntax></A>语法</H1></DIV></DIV></DIV><>可以用 <A href="http://www.php.net/manual/zh/function.define.php"><U><FONT color=#000099>define()</FONT></U></A> 函数来定义常量。一个常量一旦被定义,就不能再改变或者取消定义。 </P><>常量只能包含标量数据(<A href="http://www.php.net/manual/zh/language.types.boolean.php"><U><FONT color=#000099>boolean</FONT></U></A>,<A href="http://www.php.net/manual/zh/language.types.integer.php"><U><FONT color=#000099>integer</FONT></U></A>,<A href="http://www.php.net/manual/zh/language.types.float.php"><U><FONT color=#000099>float</FONT></U></A> 和 <A href="http://www.php.net/manual/zh/language.types.string.php"><U><FONT color=#000099>string</FONT></U></A>)。 不要定义 <A href="http://www.php.net/manual/zh/language.types.resource.php"><U><FONT color=#000099>resource</FONT></U></A> 常量。 </P><>可以简单的通过指定其名字来取得常量的值,<SPAN class=emphasis><EM><STRONG>不要</STRONG></EM></SPAN>在常量前面加上 <VAR>$</VAR> 符号。如果常量名是动态的,也可以用函数 <A href="http://www.php.net/manual/zh/function.constant.php"><U><FONT color=#000099>constant()</FONT></U></A> 来读取常量的值。用 <A href="http://www.php.net/manual/zh/function.get-defined-constants.php"><U><FONT color=#000099>get_defined_constants()</FONT></U></A> 可以获得所有已定义的常量列表。 </P><BLOCKQUOTE><><B>注意: </B>常量和(全局)变量在不同的名字空间中。这意味着例如 <B><TT><FONT face=Courier>TRUE</FONT></TT></B> 和 <VAR>$TRUE</VAR> 是不同的。 </P></BLOCKQUOTE><>如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(CONSTANT 对应 "CONSTANT")。此时将发出一个 <A title="Error Handling_and_Logging Functions" href="http://www.php.net/manual/zh/ref.errorfunc.php"><U><FONT color=#000099>E_NOTICE</FONT></U></A> 级的错误。参见手册中为什么 <A title="为什么 $foo[bar] 错了?" href="http://www.php.net/manual/zh/language.types.array.php#language.types.array.foo-bar"><U><FONT color=#000099>$foo[bar]</FONT></U></A> 是错误的(除非事先用 <A href="http://www.php.net/manual/zh/function.define.php"><U><FONT color=#000099>define()</FONT></U></A> 将 <VAR>bar</VAR> 定义为一个常量)。如果只想检查是否定义了某常量,用 <A href="http://www.php.net/manual/zh/function.defined.php"><U><FONT color=#000099>defined()</FONT></U></A> 函数。 </P><>常量和变量不同: <DIV class=itemizedlist><UL type=disc><LI>常量前面没有美元符号(<VAR>$</VAR>); <LI>常量只能用 <A href="http://www.php.net/manual/zh/function.define.php"><U><FONT color=#000099>define()</FONT></U></A> 函数定义,而不能通过赋值语句; <LI>常量可以不用理会变量范围的规则而在任何地方定义和访问; <LI>常量一旦定义就不能被重新定义或者取消定义; <LI>常量的值只能是标量。 </LI></UL></DIV><></P><><DIV class=example><A name=id2662657></A><><B>例 13.2. 定义常量</B></P><DIV class=example-contents><DIV class=phpcode><CODE><SPAN class=html><FONT face=Courier><SPAN class=default><FONT color=#0000bb>&lt;?php<BR>define</FONT></SPAN><SPAN class=keyword><FONT color=#007700>(</FONT></SPAN><SPAN class=string><FONT color=#dd0000>"CONSTANT"</FONT></SPAN><SPAN class=keyword><FONT color=#007700>, </FONT></SPAN><SPAN class=string><FONT color=#dd0000>"Hello world."</FONT></SPAN></FONT><FONT face=Courier><SPAN class=keyword><FONT color=#007700>);<BR>echo </FONT></SPAN><SPAN class=default><FONT color=#0000bb>CONSTANT</FONT></SPAN><SPAN class=keyword><FONT color=#007700>; </FONT></SPAN></FONT><FONT face=Courier><SPAN class=comment><FONT color=#ff8000>// outputs "Hello world."<BR></FONT></SPAN><SPAN class=keyword><FONT color=#007700>echo </FONT></SPAN><SPAN class=default><FONT color=#0000bb>Constant</FONT></SPAN><SPAN class=keyword><FONT color=#007700>; </FONT></SPAN></FONT><FONT face=Courier><SPAN class=comment><FONT color=#ff8000>// outputs "Constant"_and_issues a notice.<BR></FONT></SPAN><SPAN class=default><FONT color=#0000bb>?&gt;</FONT></SPAN></FONT></SPAN></CODE></DIV></DIV></DIV><BR class=example-break><><FONT face=Courier></FONT></P><>参见<A title="Class Constants" href="http://www.php.net/manual/zh/language.oop5.constants.php"><U><FONT color=#000099>类常量</FONT></U></A>。 </P></DIV></DIV>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-5 20:51 , Processed in 0.056605 second(s), 23 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表