como llamar una función de este modo?
#1
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.
Responder
#2
Depende para lo que lo utilices, lo más comun es por medio de un loop
Responder
#3
No podés. Y tampoco veo ninguna utilidad de utilizar esa forma, qué estás tratando de hacer ?
Responder
#4
(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 
Responder
#5
debes usar callfunc*
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

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)
Responder
#6
(15/08/2019, 12:28 AM)totopizza escribió: debes usar callfunc*

Ya probe call func pero ninguno acepta array como argumento
Responder
#7
(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
Responder
#8
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.
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

(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:
Responder
#9
Bien, me quedo con el switch, gracias a todos.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)