Programación Web y Scripting => PHP => Mensaje iniciado por: cesand en Miércoles 24 de Febrero de 2010, 01:38
Título: construir funciones propias
Publicado por: cesand en Miércoles 24 de Febrero de 2010, 01:38
hola gente..
traigo una pregunta ya que estoy comenzando con el estudio de la construccion de funciones propias: el tema es que eentiendo la sintaxis e contruido algunas asi de prueba no mas pero sin ninguna utilidad para aprobechar.. y en esto esta mi pregunta ya que quiero darme ideas para construir peque;as funciones que despues pueda aprobechar..
por ejemplo me podran comentar alguna fin para una funcion? algo que por ahi se use comunmente nose.. espero se entienda mi comentario sobre este tema muchas gracias desde ya.
saludos
Título: Re: construir funciones propias
Publicado por: fonsi3 en Miércoles 24 de Febrero de 2010, 02:30
Como vas con programacion? Leete algun pdf sobre programacion, la teoria. Porque tu duda es como preguntar porque se usan variables.
Título: Re: construir funciones propias
Publicado por: cesand en Miércoles 24 de Febrero de 2010, 23:25
Esta bien amigo se que la pregunta no es lo mas constructiva ni apunta a resulver algo.. por ahi no me explique bien, no quiero saber porque se usa una funcion o para que... sino lo que me gustaria es ver cualquier funcion alguna simple con algun fin concreto.. y saber que dicha funcion puede se puede usar en determinada ocacion.. ya que lo que me gustaria por ahi hacer es p0obar de escrivir algunas funciones y tenerlas a mano para usarlas con require() eso quiero probar.
pero bueno si no se entiendo lo que busco ver no hay drama gracias igual.
Título: Re: construir funciones propias
Publicado por: DriverOp en Jueves 25 de Febrero de 2010, 00:34
¿Cualquier función?, pues esta siempre me ha resultado útil:
Título: Re: construir funciones propias
Publicado por: cesand en Jueves 25 de Febrero de 2010, 05:24
Exacto eso mismo...
queria ver una funcion creada nada mas, y el uso de las expreciones regulares dentro de la funcion lo voy a tener encuenta para distintos fines..
a partir de ahi no tiene nada que ver pero pude hacer una que por lo menos a mi me va ayudar mucha y es una conexion a DB muy simple pero es por lo que estoy empezando aca la muestro..
por lo menos logre lo que buscaba muchas gracias por las respuestas
suerte
Título: Re: construir funciones propias
Publicado por: DriverOp en Jueves 25 de Febrero de 2010, 18:47
El problema con esa función es que no devuelve el puntero a la conexión y al usarla estás confiando en la última conexión abierta. Aunque funciona esto no es deseable.
Título: Re: construir funciones propias
Publicado por: cesand en Viernes 26 de Febrero de 2010, 21:52
mmmmm driverOp como me hubiece gustado interpretar bien lo que quiciste decir con que dijiste que mi funcion no devuelve el puntero a la conexión me podras decir con otras palabras como es eso? que significa que no devuelve el puntero a la conexion?
saludos
Título: Re: construir funciones propias
Publicado por: DriverOp en Viernes 26 de Febrero de 2010, 23:48
La función mysql_connect() cuando es exitosa devuelve un puntero, ese puntero se usa en las siguientes operaciones a la base de datos para indicar que debe usar esa conexión abierta y no otra.
Lo que ocurre es que las funciones donde se usa ese puntero, el puntero es opcional porque PHP mantiene internamente una conexión activa que puede usarla cualquier función que la requiera, esa conexión activa es la última que se pide. En tu caso, como has abierto una sola no hay problema porque se usa siempre esa, pero te tocará el caso donde tengas que abrir más de una y trabajar con ellas al mismo tiempo y no sabrás por qué saltan errores "misteriosos".
En definitiva: es buena práctica de programación indicar siempre cuál conexión a la base de datos estás usando.
Título: Re: construir funciones propias
Publicado por: cesand en Lunes 1 de Marzo de 2010, 04:44
Muy buena driverOp demore un poco en contestar porque estaba probando lo que me comentas y queria probar antes de responderte por las dudas que quede alguna duda y te la planteaba pero me dejaste bastante claro el asunto por ahora.. y como decis quizas ahora no me estoy dando cuenta por que es verdad hast ahora en todos los script que hice e usado una sola conexion la cual dejo abierta y uso para las consultas.. voy a implementar como dijiste esta "buena practica de programacion" mil gracias suerte.
Título: Re: construir funciones propias
Publicado por: cesand en Domingo 14 de Marzo de 2010, 05:30
DriverOp una pregunta...
por ahi parece que comprendo bien el return y ahora me caen otra vez dudas.. el uso de return es para cortar la continuidad de la funcion.. es decir si ponemos una condicion en la funcion y esta se cumple y aparece un return listo esa funcion se va ejecutar hasta ahi, pero el caso de esta funcion para conectar con mysql que vos me arreglaste cuando usas return $var1; que estas haciendo en otras palabras que no sea devolver el puntero.. que es lo que se esta haciendo? se esta obligando a que $var1 quede sin ningun valor? es decir que quede vacia asi cuando despues si nos hace falta abrir otra conexion podemos tabrajar con una conexion nueva?
function conn($var2, $var3, $var4) { $var1 = mysql_connect("$var2", "$var3", "$var4"); if (!$var1) { echo "no se pudo conectar con la base de datos"; } else { echo "se conectar con la base de datos"; } return $var1; }
es eso o estoy mal en lo que interpreto?
saludos
Título: Re: construir funciones propias
Publicado por: DriverOp en Domingo 14 de Marzo de 2010, 15:22
No entiendo bien cuál es tu duda.
La sentencia return efectivamente finaliza la función y además, si existe, hace que la función devuelva el valor que return tiene enfrente (en el ejemplo, el valor de $var1). Y en el ejemplo lo que la función conn() hace es exactamente lo mismo que haría mysql_connect() excepto que imprime un mensaje de aviso de si pudo o no conectarse (el ejemplo es muy tonto, la verdad).
Título: Re: construir funciones propias
Publicado por: cesand en Lunes 22 de Marzo de 2010, 18:11
como estas driverOp?
sabes que ahora voy a probar la conexion con el requiere y me hace la consulta pero me tira un error :huh: te muestro como hago:
este es el achivo que despues voy a llamar con la funcion:
biblioteca.php: function conn($var2, $var3, $var4) { @$var = mysql_connect("$var2", "$var3", "$var4"); if (!$var) { die("error al conectar mysql"); } return $var; }
asi lo llamo: require("biblioteca.php"); $puntero = conn("localhost", "root", ""); mysql_select_db("sistema_de_noticias", $puntero);
y me tira este error:
Fatal error: Cannot redeclare conn() (previously declared in C:xampphtdocsweb1biblioteca.php:9) in C:xampphtdocsweb1biblioteca.php on line 16
porque puede ser amigo? la consulta me la hace igual y muestra resultados despues pero no logro sacar este error.. me podras dar una mano?
mil gracias.
Título: Re: construir funciones propias
Publicado por: DriverOp en Lunes 22 de Marzo de 2010, 20:54
Pues eso, que tienes declarada dos veces la misma función en biblioteca.php, o al menos estás usando el mismo identificador (conn) en dos funciones distintas.
Título: Re: construir funciones propias
Publicado por: cesand en Martes 23 de Marzo de 2010, 04:33
muchas gracias amigo.. algo parecido era pero me di cuenta por lo que me dijiste y era que estaba llamando dos veces al archivo biblioteca.php en el mismo escript :D disculpas ahora si. pero lo bueno es aprender sobre el error no? ahora ya se que se llama solo una vez a un archivo externo.