<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >classkit_method_redefine</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="Manual do PHP" HREF="index.html"><LINK REL="UP" TITLE="Classkit Functions" HREF="ref.classkit.html"><LINK REL="PREVIOUS" TITLE="classkit_method_copy" HREF="function.classkit-method-copy.html"><LINK REL="NEXT" TITLE="classkit_method_remove" HREF="function.classkit-method-remove.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" >Manual do PHP</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="function.classkit-method-copy.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.classkit-method-remove.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="function.classkit-method-redefine" ></A >classkit_method_redefine</H1 ><DIV CLASS="refnamediv" ><A NAME="AEN16174" ></A ><P > (PECL)</P >classkit_method_redefine -- Muda dinâmicamente o corpo do método</DIV ><DIV CLASS="refsect1" ><A NAME="AEN16177" ></A ><H2 >Descrição</H2 >bool <B CLASS="methodname" >classkit_method_redefine</B > ( string classname, string methodname, string args, string code [, int flags] )<BR ></BR ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B >Esta função não pode ser utilizada para manipular o método atualmente em execução (ou encadeado).</P ></BLOCKQUOTE ></DIV ><DIV CLASS="warning" ><P ></P ><TABLE CLASS="warning" BORDER="1" WIDTH="100%" ><TR ><TD ALIGN="CENTER" ><B >Atenção</B ></TD ></TR ><TR ><TD ALIGN="LEFT" ><P >Esta função é <SPAN CLASS="emphasis" ><I CLASS="emphasis" >EXPERIMENTAL</I ></SPAN >. Isso quer dizer que o comportamento desta função e seu nome, incluindo TUDO o que está documentado aqui pode mudar em futuras versões do PHP, SEM QUALQUER NOTIFICAÇÃO. Esteja avisado, e use esta função por sua própria conta e risco.</P ></TD ></TR ></TABLE ></DIV ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN16202" ></A ><H2 >Parâmetros</H2 ><P > <P ></P ><DIV CLASS="variablelist" ><DL ><DT ><CODE CLASS="parameter" >classname</CODE ></DT ><DD ><P > Classe que contém o método que será redefinido </P ></DD ><DT ><CODE CLASS="parameter" >methodname</CODE ></DT ><DD ><P > Método a ser redefinido </P ></DD ><DT ><CODE CLASS="parameter" >args</CODE ></DT ><DD ><P > Parâmetros do método redefinido, mais de um parâmetro deve ser separado por virgula (,) </P ></DD ><DT ><CODE CLASS="parameter" >code</CODE ></DT ><DD ><P > O novo código será executado quando <CODE CLASS="parameter" >methodname</CODE > for invocado. </P ></DD ><DT ><CODE CLASS="parameter" >flags</CODE ></DT ><DD ><P > Tipo do método, pode ser: <TT CLASS="constant" ><B >CLASSKIT_ACC_PUBLIC</B ></TT >, <TT CLASS="constant" ><B >CLASSKIT_ACC_PROTECTED</B ></TT > or <TT CLASS="constant" ><B >CLASSKIT_ACC_PRIVATE</B ></TT > </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > Este parâmetro somente é usado na versão 5 ou superior, versão anteriores a 5 os métodos sempre são public. </P ></BLOCKQUOTE ></DIV ></DD ></DL ></DIV > </P ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN16237" ></A ><H2 >Valores de retornado</H2 ><P > Retorna <TT CLASS="constant" ><B >TRUE</B ></TT > em caso de sucesso ou <TT CLASS="constant" ><B >FALSE</B ></TT > em falhas. </P ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN16242" ></A ><H2 >Exemplos</H2 ><P > <TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN16245" ></A ><P ><B >Exemplo 1. <B CLASS="function" >classkit_method_redefine()</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 /> return </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">// output Example::foo() (before redefine)<br /></font><font color="#007700">echo </font><font color="#DD0000">"Before: " </font><font color="#007700">. </font><font color="#0000BB">$e</font><font color="#007700">-></font><font color="#0000BB">foo</font><font color="#007700">();<br /><br /></font><font color="#FF8000">// Redefine the 'foo' method<br /></font><font color="#0000BB">classkit_method_redefine</font><font color="#007700">(<br /> </font><font color="#DD0000">'Example'</font><font color="#007700">,<br /> </font><font color="#DD0000">'foo'</font><font color="#007700">,<br /> </font><font color="#DD0000">''</font><font color="#007700">,<br /> </font><font color="#DD0000">'return "bar!\n";'</font><font color="#007700">,<br /> </font><font color="#0000BB">CLASSKIT_ACC_PUBLIC<br /></font><font color="#007700">);<br /><br /></font><font color="#FF8000">// output Example::foo() (after redefine)<br /></font><font color="#007700">echo </font><font color="#DD0000">"After: " </font><font color="#007700">. </font><font color="#0000BB">$e</font><font color="#007700">-></font><font color="#0000BB">foo</font><font color="#007700">();<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ><P >O exemplo acima irá imprimir:</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><PRE CLASS="screen" >Before: foo! After: bar!</PRE ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE > </P ></DIV ><DIV CLASS="refsect1" ><A NAME="AEN16251" ></A ><H2 >Veja também</H2 ><P > <P ></P ><TABLE BORDER="0" ><TBODY ><TR ><TD ><A HREF="function.classkit-method-add.html" ><B CLASS="function" >classkit_method_add()</B ></A ></TD ></TR ><TR ><TD ><A HREF="function.classkit-method-copy.html" ><B CLASS="function" >classkit_method_copy()</B ></A ></TD ></TR ><TR ><TD ><A HREF="function.classkit-method-remove.html" ><B CLASS="function" >classkit_method_remove()</B ></A ></TD ></TR ><TR ><TD ><A HREF="function.classkit-method-rename.html" ><B CLASS="function" >classkit_method_rename()</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.classkit-method-copy.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Principal</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="function.classkit-method-remove.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >classkit_method_copy</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ref.classkit.html" ACCESSKEY="U" >Acima</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >classkit_method_remove</TD ></TR ></TABLE ></DIV ></BODY ></HTML >