Foros del Web » Programando para Internet » PHP »

Como convertir una variable en una funcion?

Estas en el tema de Como convertir una variable en una funcion? en el foro de PHP en Foros del Web. Es muy simple mi solicitud: Código PHP: <?php $ss  =  6 + 5 ; echo ( $ss );     // Funcion imprimir ?> Es posible hacer esto?: $impri = ...
  #1 (permalink)  
Antiguo 03/09/2003, 10:15
Usuario baneado!
 
Fecha de Ingreso: diciembre-2002
Ubicación: En mi chozita
Mensajes: 142
Antigüedad: 21 años, 11 meses
Puntos: 0
Exclamación Como convertir una variable en una funcion?

Es muy simple mi solicitud:
Código PHP:
<?php

$ss 
6+5;
echo (
$ss);    // Funcion imprimir

?>
Es posible hacer esto?:

$impri = "echo ($ss);";

Como hacer que la variable $impri sea = a "FUNCION imprimir a $ss"

Es decir que al escribir:

echo $impri imprima: 30 y no: echo (30);

Aclaro que no sirve $impri = $ss;

Por que lo que necesito es que $impri sea = a la funcion IMPRIMIR.

Gracias por la ayuda que me puedan brindar.
  #2 (permalink)  
Antiguo 03/09/2003, 10:24
 
Fecha de Ingreso: julio-2003
Ubicación: Europa
Mensajes: 37
Antigüedad: 21 años, 4 meses
Puntos: 0
Puedo estar confundido pero mirar ésto haber.

Caundo aga memoria ya te ponge algo mas de info.


Código PHP:
<?

function suma(){

$ss 6+5;
echo (
$ss); 

}

suma(); // Imprimir Funcion


?>
Bueno no sep si será eso pero al decir función es lo que me suena (Tengo mucho que aprender )

Salu2 espera uno con mas experiencia no te fies de esto ni un pelo.
__________________
Del Azul Del Cielo Al Negro Del Infierno.

Última edición por arcange|; 03/09/2003 a las 10:27
  #3 (permalink)  
Antiguo 03/09/2003, 10:53
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años, 7 meses
Puntos: 1
Código PHP:
<?


function imprimir($a,$b)
{
         
$ss=$a+$b;
         echo 
$ss;
}
imprimir(3,5);

/*

Aunque no es demasiado aconsejable que en el interior 
de una funcion haya echo ya que la limita bastante al usarla 
para otros scripts, es mejor cuando se construye una funcion
es que nos pueda servir lo maximo para otras cosas

seria mejor
*/
function imprimirb($a,$b)
{
         
$ss=$a+$b;
         return 
$ss;
}

$a=imprimirb(3,5);
echo 
$a;
?>
un saludo
  #4 (permalink)  
Antiguo 03/09/2003, 10:53
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 23 años, 7 meses
Puntos: 0
Tal ves si explicaras un poco mas cual es el problema de lo que necesitas resolver, te podriamos dar otras opciones.
Por lo pronto, no entiendo bien lo que necesitas, pero puede ser qeu quieras que el valor de $impri te llame a una funcion cuyo nombre es el contenido de $impri?

Si es eso, chequea en el manual de php en la parte de variables, creo que se puede hacer algo asi:

$impri = "miFuncion";
$impri();

con eso ejecutarias la funcion llamada miFuncion, pero nose si es correcta la sintaxis.

Saludos
Nok
__________________
La casa de Noktemplate.
Zonaphp.com - Php en español.

¿Que esperas de NokTpl 2? Deja tu comentario.

Blog
Mas o menos asi .
  #5 (permalink)  
Antiguo 03/09/2003, 11:03
Usuario baneado!
 
Fecha de Ingreso: diciembre-2002
Ubicación: En mi chozita
Mensajes: 142
Antigüedad: 21 años, 11 meses
Puntos: 0
arcangel, laespuesta ha sido todo un exito!!

NOTA:

Me disculpo con los dos foristas luego de arcangel.

Lo que pasa es que yo me conecto y me desconecto de una.

Asi que armo las respuestas, las preguntas, me conecto y envio los datos.

Muchas gracias por su valiosa ayuda Jordi1 y Nok.

Decis que no tenes experiencia, pero...

Pues...... arcangel, haz hecho que este post se cierre en menos de 30 minutos.

La respuesta ha sido todo un exito!; muchas gracias arcangel.

Claro que que yo no lo necesitaba para hacer 6+5, sino para imprimir SIN IMPORTAR DONDE, el resultado de un "preg_match_all", valla uno a saber que significa eso...????

Y gracias al arcangel, ya esta resuleto el problema.


Si a alguien le puede servir el script, aqui esta:

Código PHP:
<?php
function suma(){

$a "Para poderlas    Esta seria la opcion: AA [06546541]";
$b "imprimir         Esta seria la opcion: BB [025454]";
$c "esteticamente    Esta seria la opcion: CC [0343]";
$d "en tablas        Esta seria la opcion: DD [O incluso texto extenso, o no extenso]";
$e "Para poderlas    Esta seria la opcion: AA [06546541]";
$f "imprimir         Esta seria la opcion: BB [025454]";
$g "esteticamente    Esta seria la opcion: CC [0343]";
$h "en tablas        Esta seria la opcion: DD [O incluso texto extenso, o no extenso]";

$todas "$a$b$c$d$e$f$g$h";

preg_match_all ('/(.*?)(\\[.*?\\])/'$todas$coincidenciasPREG_SET_ORDER);
foreach (
$coincidencias as $matriz)

      echo (
" <tr>\n  <td>" .
      
$matriz[1] . "</td>\n  <td>" .
        
$matriz[2] . "</td>\n </tr>\n");
}
?>
<TABLE bgcolor=peru>
<TR><TD colSPAN=2 ALIGN=CENTER BGCOLOR=AABBCC>AQUI LOS DATOS:</TD></TR>
<?php suma(); ?></table>
Salu2 a to2!!.

Última edición por RAZACALA; 03/09/2003 a las 11:07
  #6 (permalink)  
Antiguo 03/09/2003, 12:01
 
Fecha de Ingreso: julio-2003
Ubicación: Europa
Mensajes: 37
Antigüedad: 21 años, 4 meses
Puntos: 0
Según el manual de php.net es esto (Desconocia esta función o lo que sea tengo que estudiar muy interesante gracias RAZACALA tendre que estudiar mocho mas pero bueno nadie nace aprendido )

preg_match_all
(PHP 3>= 3.0.9, PHP 4 )

preg_match_all -- Realiza un completo emparejamiento de expresiones
Descripción
int preg_match_all ( string pattern, string subject, array matches [, int order])


Busca en subject todos los emparejamientos de la expresión pattern y los pone en matches de la forma indicada por order.

Después de encontrar el primer emparejamiento, las subsiguientes búsquedas empiezan desde el punto del último casamiento.

order puede tener los siguientes valores:


PREG_PATTERN_ORDER
Los resultados serán devueltos de manera que $matches[0] es un array con el patrón de búsqueda completo, $matches[1] es una array de las cadenas casadas por el primer subpatrón que esté entre paréntesis y así sucesivamente.

Código PHP:
preg_match_all("|<[^>]+>(.*)</[^>]+>|U""<b>example: </b><div align=left>this is a test</div>"$outPREG_PATTERN_ORDER);
print 
$out[0][0].", ".$out[0][1]."\n";
print 
$out[1][0].", ".$out[1][1]."\n" 


Esta ejemplo dará como resultado:

Código PHP:
<b>example: </b>, <div align=left>this is a test</div>
example: , this is a test 


Así, $out[0] contiene el array con las cadena que casan completamente con el patrón y $out[1] con las cadenas que se encuentran entre los tags.

PREG_SET_ORDER
Los resultados son dados de manera que $matches[0] es una array del primer conjunto de emparejamientos, $matches[1] es un array de los segundos conjuntos de casamientos y así sucesivamente.

Código PHP:
preg_match_all("|<[^>]+>(.*)</[^>]+>|U""<b>example: </b><div align=left>this is a test</div>"$outPREG_SET_ORDER);
print 
$out[0][0].", ".$out[0][1]."\n";
print 
$out[1][0].", ".$out[1][1]."\n" 


Este ejemplo dará como resultado:

Código PHP:
<b>example: </b>, example:
<
div align=left>this is a test</div>, this is a test 


En este caso, $matches[0] es el primer conjunto de emparejamientos y $matches[0][0] tiene el casamiento completo, $matches[0][1] el del primer subpatrón y así sucesivamente. Similarmente, $matches[1] es el segundo conjunto de emparejamientos, etc.


Si order no es dado, se asume PREG_PATTERN_ORDER.

Devuelve el número de casamientos completos, FALSE si no hubo o se produjo error.

Ejemplo 1. Obtener los número de teléfonos de un texto.

Código PHP:
preg_match_all("/\(?  (\d{3})?  \)?  (?(1)  [\-\s] ) \d{3}-\d{4}/x",
               
"Call 555-1212 or 1-800-555-1212"$phones); 
__________________
Del Azul Del Cielo Al Negro Del Infierno.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:34.