<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >runkit_method_add</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="PHP 手册" HREF="index.html"><LINK REL="UP" TITLE="runkit Functions" HREF="ref.runkit.html"><LINK REL="PREVIOUS" TITLE="runkit_lint" HREF="function.runkit-lint.html"><LINK REL="NEXT" TITLE="runkit_method_copy" HREF="function.runkit-method-copy.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.runkit-lint.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.runkit-method-copy.html" ACCESSKEY="N" >下一页</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="function.runkit-method-add" ></A >runkit_method_add</H1 ><DIV CLASS="refnamediv" ><A NAME="AEN199384" ></A ><P > (PECL)</P >runkit_method_add -- Dynamically adds a new method to a given class</DIV ><DIV CLASS="refsect1" ><A NAME="AEN199387" ></A ><H2 >说明</H2 >bool <B CLASS="methodname" >runkit_method_add</B > ( string classname, string methodname, string args, string code [, int flags] )<BR ></BR ><DIV CLASS="warning" ><P ></P ><TABLE CLASS="warning" BORDER="1" WIDTH="100%" ><TR ><TD ALIGN="CENTER" ><B >警告</B ></TD ></TR ><TR ><TD ALIGN="LEFT" ><P >本函数是<SPAN CLASS="emphasis" ><I CLASS="emphasis" >实验性</I ></SPAN >的。本函数的行为,包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。</P ></TD ></TR ></TABLE ></DIV ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN199410" ></A ><H2 >参数</H2 ><P > <P ></P ><DIV CLASS="variablelist" ><DL ><DT ><CODE CLASS="parameter" >classname</CODE ></DT ><DD ><P > The class to which this method will be added </P ></DD ><DT ><CODE CLASS="parameter" >methodname</CODE ></DT ><DD ><P > The name of the method to add </P ></DD ><DT ><CODE CLASS="parameter" >args</CODE ></DT ><DD ><P > Comma-delimited list of arguments for the newly-created method </P ></DD ><DT ><CODE CLASS="parameter" >code</CODE ></DT ><DD ><P > The code to be evaluated when <CODE CLASS="parameter" >methodname</CODE > is called </P ></DD ><DT ><CODE CLASS="parameter" >flags</CODE ></DT ><DD ><P > The type of method to create, can be <TT CLASS="constant" ><B >RUNKIT_ACC_PUBLIC</B ></TT >, <TT CLASS="constant" ><B >RUNKIT_ACC_PROTECTED</B ></TT > or <TT CLASS="constant" ><B >RUNKIT_ACC_PRIVATE</B ></TT > </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >注意: </B > This parameter is only used as of PHP 5, because, prior to this, all methods were public. </P ></BLOCKQUOTE ></DIV ></DD ></DL ></DIV > </P ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN199445" ></A ><H2 >返回值</H2 ><P > 如果成功则返回 <TT CLASS="constant" ><B >TRUE</B ></TT >,失败则返回 <TT CLASS="constant" ><B >FALSE</B ></TT >。 </P ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN199450" ></A ><H2 >范例</H2 ><P > <TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN199453" ></A ><P ><B >例 1. <B CLASS="function" >runkit_method_add()</B > example</B ></P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br /></font><font color="#007700">class </font><font color="#0000BB">Example </font><font color="#007700">{<br /> function </font><font color="#0000BB">foo</font><font color="#007700">() {<br /> echo </font><font color="#DD0000">"foo!\n"</font><font color="#007700">;<br /> }<br />}<br /><br /></font><font color="#FF8000">// create an Example object<br /></font><font color="#0000BB">$e </font><font color="#007700">= new </font><font color="#0000BB">Example</font><font color="#007700">();<br /><br /></font><font color="#FF8000">// Add a new public method<br /></font><font color="#0000BB">runkit_method_add</font><font color="#007700">(<br /> </font><font color="#DD0000">'Example'</font><font color="#007700">,<br /> </font><font color="#DD0000">'add'</font><font color="#007700">,<br /> </font><font color="#DD0000">'$num1, $num2'</font><font color="#007700">,<br /> </font><font color="#DD0000">'return $num1 + $num2;'</font><font color="#007700">,<br /> </font><font color="#0000BB">RUNKIT_ACC_PUBLIC<br /></font><font color="#007700">);<br /><br /></font><font color="#FF8000">// add 12 + 4<br /></font><font color="#007700">echo </font><font color="#0000BB">$e</font><font color="#007700">-></font><font color="#0000BB">add</font><font color="#007700">(</font><font color="#0000BB">12</font><font color="#007700">, </font><font color="#0000BB">4</font><font color="#007700">);<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ><P >上例将输出:</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="screen" >16</PRE ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE > </P ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN199459" ></A ><H2 >参见</H2 ><P > <P ></P ><TABLE BORDER="0" ><TBODY ><TR ><TD ><A HREF="function.runkit-method-copy.html" ><B CLASS="function" >runkit_method_copy()</B ></A ></TD ></TR ><TR ><TD ><A HREF="function.runkit-method-redefine.html" ><B CLASS="function" >runkit_method_redefine()</B ></A ></TD ></TR ><TR ><TD ><A HREF="function.runkit-method-remove.html" ><B CLASS="function" >runkit_method_remove()</B ></A ></TD ></TR ><TR ><TD ><A HREF="function.runkit-method-rename.html" ><B CLASS="function" >runkit_method_rename()</B ></A ></TD ></TR ><TR ><TD ><A HREF="function.runkit-function-add.html" ><B CLASS="function" >runkit_function_add()</B ></A ></TD ></TR ></TBODY ></TABLE ><P ></P > </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.runkit-lint.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.runkit-method-copy.html" ACCESSKEY="N" >下一页</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >runkit_lint</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ref.runkit.html" ACCESSKEY="U" >上一级</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >runkit_method_copy</TD ></TR ></TABLE ></DIV ></BODY ></HTML >