Enviar respuesta 
como llamar una función de este modo?
Autor Mensaje
Decxx1 Sin conexión
Miembro


Trebol purpura
Mensajes: 63
Registro en: Nov 2018
Reputación: 1
Mensaje: #1
como llamar una función de este modo?
hola, quisiera poder llamar una funcion de esta forma:

Código PHP:
new numero_de_la_func
new const n_func[][] =
{
    
"funcion_0(id)",
    
"funcion_1(id)",
    
"funcion_2(id)",
    
"funcion_3(id)",
        
"funcion_4(id)",
    
"funcion_5(id)"
}
public 
dame_dos(){
        
n_func[numero_de_la_func]


cuál seria la forma correcta? creo que se entiende el punto.
14/08/2019 07:18 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
matrix123 Sin conexión
Miembro Destacado


1k
Mensajes: 1,441
Registro en: Oct 2014
Reputación: 16
Mensaje: #2
RE: como llamar una función de este modo?
Depende para lo que lo utilices, lo más comun es por medio de un loop

14/08/2019 09:44 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
KISKE Sin conexión
Miembro Sr.


Plugin developer AMXX Support Medalla de aportes
Mensajes: 418
Registro en: May 2014
Reputación: 22
Mensaje: #3
RE: como llamar una función de este modo?
No podés. Y tampoco veo ninguna utilidad de utilizar esa forma, qué estás tratando de hacer ?

14/08/2019 10:21 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Decxx1 Sin conexión
Miembro


Trebol purpura
Mensajes: 63
Registro en: Nov 2018
Reputación: 1
Mensaje: #4
RE: como llamar una función de este modo?
(14/08/2019 10:21 PM)KISKE escribió:  No podés. Y tampoco veo ninguna utilidad de utilizar esa forma, qué estás tratando de hacer ?
Ragestart
lo que quiero es almacenar en una variable todas esas funciones, entonces cuando el número de la variable aumente se vayan utilizando cada una de las funciones almacenadas numericamente... lo hice con switch pero me quedó un chorizo de 100 lineas...qué lástima en otros lenguajes si se puede Triste

pd: respondiendo a matrix, un loop no me serviría ya que necesito que la funcion cambie cuando cambie la variable.


Edit: en definitiva lo que estoy tratando de evitar es esto
Código PHP:
if(var == 0)
       
funcion_o(id)
if(var == 
1)
       
funcion_1(id
o esto
Código PHP:
switch( var )
{    
        case 
1funcion_0(id)
        case 
2funcion_1(id)

quisiera evitar eso, creo que ví una manera en otro código era algo así..
Código PHP:
#define call.%0 \ funcion_0(id)

//luego ponia
call.var //o algo así la verdad es que no entiendo 
(Este mensaje fue modificado por última vez en: 15/08/2019 12:17 AM por Decxx1.)
15/08/2019 12:01 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
totopizza Sin conexión
http://www.MexicanServers.com


Donador Forum supporter Trebol verde Trebol de oro 1k
Mensajes: 2,094
Registro en: Mar 2014
Reputación: 40
Mensaje: #5
RE: como llamar una función de este modo?
debes usar callfunc*

Image

Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016 05:05 PM)meTaLiCroSS escribió:  Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando.
(08/08/2019 05:32 PM)meTaLiCroSS escribió:  grax x el dato cr4ck


Mis aportes

PLUGINS
MAPAS
Menú LANG [SF] Sistema de Frags
Say System (Admin Prefix)
(Este mensaje fue modificado por última vez en: 15/08/2019 12:28 AM por totopizza.)
15/08/2019 12:28 AM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Decxx1 Sin conexión
Miembro


Trebol purpura
Mensajes: 63
Registro en: Nov 2018
Reputación: 1
Mensaje: #6
RE: como llamar una función de este modo?
(15/08/2019 12:28 AM)totopizza escribió:  debes usar callfunc*

Ya probe call func pero ninguno acepta array como argumento
15/08/2019 12:15 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
meTaLiCroSS Sin conexión
Miembro Destacado


Buen Tutorial AMXX Support Pensador Trebol verde 1k
Mensajes: 1,420
Registro en: Oct 2013
Reputación: 52
Mensaje: #7
RE: como llamar una función de este modo?
(15/08/2019 12:15 PM)Decxx1 escribió:  
(15/08/2019 12:28 AM)totopizza escribió:  debes usar callfunc*

Ya probe call func pero ninguno acepta array como argumento

No veo que estés manipulando un array por parámetro, pero por si las dudas...

Código PHP:
/**
 * Pushes an array onto the current call.
 *
 * @note This will defy the "const" specifier if copyback is true, which is
 *       only kept for special backwards compatibility.
 *
 * @param VALUE         Array to push
 * @param array_size    Size of the array
 * @param copyback      If true, any changes made in the called function will be
 *                      copied back to the calling plugin
 *
 * @noreturn
 * @error           If called without initiating a callfunc, or the maximum
 *                  amount of parameters is reached, an error is thrown.
 */
native callfunc_push_array(const VALUE[], array_sizebool:copyback true); 

amxmodx.inc

16/08/2019 01:31 AM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
OsweRRR Ausente
Miembro Destacado


Mensajes: 969
Registro en: Feb 2015
Reputación: 11
Mensaje: #8
RE: como llamar una función de este modo?
que clase de optimización estás tratando de hacer? xd, mete tu variable en un switch y en los case diriges la función en lugar de usar el #define o la forma como la estés pensando.

Image

(18/11/2014 05:47 PM)Neeeeeeeeeel.- escribió:  Por qué necesitan una guía para todo? Meté mano y que salga lo que salga... es la mejor forma de aprender.

(16/05/2016 11:08 PM)kikizon2 escribió:  No cabe duda que tienen mierda en vez de cerebro, par de pendejos v:
16/08/2019 01:16 PM
Visita su sitio web Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Decxx1 Sin conexión
Miembro


Trebol purpura
Mensajes: 63
Registro en: Nov 2018
Reputación: 1
Mensaje: #9
RE: como llamar una función de este modo?
Bien, me quedo con el switch, gracias a todos.
16/08/2019 01:33 PM
Encuentra todos sus mensajes Cita este mensaje en tu respuesta
Enviar respuesta 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | Allied Modders en español | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS