<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >isset</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="PHP 手册" HREF="index.html"><LINK REL="UP" TITLE="Variable 变量函数" HREF="ref.var.html"><LINK REL="PREVIOUS" TITLE="is_unicode" HREF="function.is-unicode.html"><LINK REL="NEXT" TITLE="print_r" HREF="function.print-r.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="refentry" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >PHP 手册</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="function.is-unicode.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.print-r.html" ACCESSKEY="N" >下一页</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="function.isset" ></A >isset</H1 ><DIV CLASS="refnamediv" ><A NAME="AEN236868" ></A ><P > (PHP 3, PHP 4, PHP 5)</P >isset -- 检测变量是否设置</DIV ><DIV CLASS="refsect1" ><A NAME="AEN236871" ></A ><H2 >描述</H2 >bool <B CLASS="methodname" >isset</B > ( mixed var [, mixed var [, ...]] )<BR ></BR ><P > 如果 <CODE CLASS="parameter" >var</CODE > 存在则返回 <TT CLASS="constant" ><B >TRUE</B ></TT >,否则返回 <TT CLASS="constant" ><B >FALSE</B ></TT >。 </P ><P > 如果已经使用 <A HREF="function.unset.html" ><B CLASS="function" >unset()</B ></A > 释放了一个变量之后,它将不再是 <B CLASS="function" >isset()</B >。若使用 <B CLASS="function" >isset()</B > 测试一个被设置成 <TT CLASS="constant" ><B >NULL</B ></TT > 的变量,将返回 <TT CLASS="constant" ><B >FALSE</B ></TT >。同时要注意的是一个 <TT CLASS="constant" ><B >NULL</B ></TT > 字节(<TT CLASS="literal" >"\0"</TT >)并不等同于 PHP 的 <TT CLASS="constant" ><B >NULL</B ></TT > 常数。 </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >警告: </B > <B CLASS="function" >isset()</B > 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测<A HREF="language.constants.html" >常量</A >是否已设置,可使用 <A HREF="function.defined.html" ><B CLASS="function" >defined()</B ></A > 函数。 </P ></BLOCKQUOTE ></DIV ><P > <DIV CLASS="informalexample" ><P ></P ><A NAME="AEN236904" ></A ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br /><br />$var </font><font color="#007700">= </font><font color="#DD0000">''</font><font color="#007700">;<br /><br /></font><font color="#FF8000">// 结果为 TRUE,所以后边的文本将被打印出来。<br /></font><font color="#007700">if (isset(</font><font color="#0000BB">$var</font><font color="#007700">)) {<br /> print </font><font color="#DD0000">"This var is set set so I will print."</font><font color="#007700">;<br />}<br /><br /></font><font color="#FF8000">// 在后边的例子中,我们将使用 var_dump 输出 isset() 的返回值。<br /><br /></font><font color="#0000BB">$a </font><font color="#007700">= </font><font color="#DD0000">"test"</font><font color="#007700">;<br /></font><font color="#0000BB">$b </font><font color="#007700">= </font><font color="#DD0000">"anothertest"</font><font color="#007700">;<br /><br /></font><font color="#0000BB">var_dump</font><font color="#007700">( isset(</font><font color="#0000BB">$a</font><font color="#007700">) ); </font><font color="#FF8000">// TRUE<br /></font><font color="#0000BB">var_dump</font><font color="#007700">( isset (</font><font color="#0000BB">$a</font><font color="#007700">, </font><font color="#0000BB">$b</font><font color="#007700">) ); </font><font color="#FF8000">// TRUE<br /><br /></font><font color="#007700">unset (</font><font color="#0000BB">$a</font><font color="#007700">);<br /><br /></font><font color="#0000BB">var_dump</font><font color="#007700">( isset (</font><font color="#0000BB">$a</font><font color="#007700">) ); </font><font color="#FF8000">// FALSE<br /></font><font color="#0000BB">var_dump</font><font color="#007700">( isset (</font><font color="#0000BB">$a</font><font color="#007700">, </font><font color="#0000BB">$b</font><font color="#007700">) ); </font><font color="#FF8000">// FALSE<br /><br /></font><font color="#0000BB">$foo </font><font color="#007700">= </font><font color="#0000BB">NULL</font><font color="#007700">;<br /></font><font color="#0000BB">var_dump</font><font color="#007700">( isset (</font><font color="#0000BB">$foo</font><font color="#007700">) ); </font><font color="#FF8000">// FALSE<br /><br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ><P ></P ></DIV > </P ><P > 这对于数组中的元素也同样有效: <DIV CLASS="informalexample" ><P ></P ><A NAME="AEN236907" ></A ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br /><br />$a </font><font color="#007700">= array (</font><font color="#DD0000">'test' </font><font color="#007700">=> </font><font color="#0000BB">1</font><font color="#007700">, </font><font color="#DD0000">'hello' </font><font color="#007700">=> </font><font color="#0000BB">NULL</font><font color="#007700">);<br /><br /></font><font color="#0000BB">var_dump</font><font color="#007700">( isset (</font><font color="#0000BB">$a</font><font color="#007700">[</font><font color="#DD0000">'test'</font><font color="#007700">]) ); </font><font color="#FF8000">// TRUE<br /></font><font color="#0000BB">var_dump</font><font color="#007700">( isset (</font><font color="#0000BB">$a</font><font color="#007700">[</font><font color="#DD0000">'foo'</font><font color="#007700">]) ); </font><font color="#FF8000">// FALSE<br /></font><font color="#0000BB">var_dump</font><font color="#007700">( isset (</font><font color="#0000BB">$a</font><font color="#007700">[</font><font color="#DD0000">'hello'</font><font color="#007700">]) ); </font><font color="#FF8000">// FALSE<br /><br />// 键 'hello' 的值等于 NULL,所以被认为是未置值的。<br />// 如果想检测 NULL 键值,可以试试下边的方法。 <br /></font><font color="#0000BB">var_dump</font><font color="#007700">( </font><font color="#0000BB">array_key_exists</font><font color="#007700">(</font><font color="#DD0000">'hello'</font><font color="#007700">, </font><font color="#0000BB">$a</font><font color="#007700">) ); </font><font color="#FF8000">// TRUE<br /><br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ><P ></P ></DIV > </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >注意: </B >由于这是一个语言结构而非函数,因此它无法被<A HREF="functions.variable-functions.html" >变量函数</A >调用。</P ></BLOCKQUOTE ></DIV ><P > 参见 <A HREF="function.empty.html" ><B CLASS="function" >empty()</B ></A >、<A HREF="function.unset.html" ><B CLASS="function" >unset()</B ></A >、<A HREF="function.defined.html" ><B CLASS="function" >defined()</B ></A >、<A HREF="function.array-key-exists.html" ><B CLASS="function" >array_key_exists()</B ></A > 和错误控制 <A HREF="language.operators.errorcontrol.html" >@</A > 运算符。 </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="function.is-unicode.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >起始页</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="function.print-r.html" ACCESSKEY="N" >下一页</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >is_unicode</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ref.var.html" ACCESSKEY="U" >上一级</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >print_r</TD ></TR ></TABLE ></DIV ></BODY ></HTML >