que es lo que está "mejor visto" ??
1) Pasarle variables globales a una función enviándola como parámetro.
2) Usarla dentro de la función, avisando con global $var, evitando así el uso de los parámetros
??
gracias
| |||
variables globales dentro de funciones.. que es lo que está "mejor visto" ?? 1) Pasarle variables globales a una función enviándola como parámetro. 2) Usarla dentro de la función, avisando con global $var, evitando así el uso de los parámetros ?? gracias |
| ||||
Respuesta: variables globales dentro de funciones.. 1) Buena practica, mis respetos 2) Pésima practica, ni lo pienses Lee lo siguiente: http://phptherightway.com/ No se trata de como "vemos" las cosas, sino de hacer bien tu trabajo.
__________________ Y U NO RTFM? щ(ºдºщ) No atiendo por MP nada que no sea personal. |
| ||||
Respuesta: variables globales dentro de funciones.. 3 evitar en lo posible el uso de variables globales =). Normalmente si una función necesita un valor externo lo paso como parámetro
__________________ aprende d tus errores e incrementa tu conocimientos it's not a bug, it's an undocumented feature By @David php the right way |
| ||||
Respuesta: variables globales dentro de funciones.. Una pregunta: tengo esta función
Código PHP:
Ver original ¿Debo hacerlo así?
Código PHP:
Ver original |
| ||||
Respuesta: variables globales dentro de funciones.. Sí, además cuando invoques la función también deberás pasar los argumentos en dicho orden.
__________________ Y U NO RTFM? щ(ºдºщ) No atiendo por MP nada que no sea personal. |
| ||||
Respuesta: variables globales dentro de funciones.. @metacortex: hola... lo que dices esta bien pero ten en cuenta que las variables globales convierten a la funcion en un procedimiento o sea que... mas bien tu funcion si la traduces "tal cual" seria asi:
Código PHP:
Ver original Y eso respetando el orden de los parámetros...... [ ahi me gano Pate je ] .. lo que te digo es que esos parametros deben ser input-output para que puedas plantear equivalencia excepto que los "output" los saques con return ... aunque en una funcion que solo "guarda" datos seria un boolean indicando exito / fracaso:
Código PHP:
Ver original
__________________ Salu2! |
| ||||
Respuesta: variables globales dentro de funciones.. Gracias por la explicación amigos. Esta noticia está a punto de descomponerme el estómago porque casi estoy que termino un trabajo largo cuyos archivos están plagados de variables globales. Otra pregunta consecuente y por favor disculpen la joda: ¿Es muy crítica esa vulnerabilidad, así como para tomar acciones inmediatas? Es decir ¿Sería válido o no dejar el asunto así por unos meses, al menos hasta que reuna X conjunto de actualizaciones de la aplicación?. |
| ||||
Respuesta: variables globales dentro de funciones.. En mi opinion hay cuestiones mas criticas pero esto te puede joder en el sentido de que podria haber colisiones entre distintas librerias / archivos Si te llegara a pasar... que empiezan a colisionar tus "paquetes", podrias usar Namespace que pues restringiria un poco el alcance de las variables globales. Ya no serian "globales" Ejemplo: supongamos tienes una libreria... llamada hello_lib.php y tiene variables globales pero tu quieres restringir el impacto a los archivos que sabes la usan porque casualmente tu tienes una funcion que se llama igual en otra libreria u archivo, digamos es la funcion saludar() // Archivo # 1 que incluye la funcion saludar()
Código PHP:
Ver original Y... preciso tienes otro archivo... que tiene la misma funcion... digamos que este segundo archivo INCLUYE al primero, pero ambos podrian ser incluidos por un tercero... etc // Archivo # 2 que estamos de malas e incluye la misma funcion saludar() ... observa que fue necesario definir varios "espacios" de trabajo para evitar las colisiones
Código PHP:
Ver original Veamos: 1) Las funciones (podrian ser clases) se pueden llamar igual.. pero la implementacion distinta o no tener nada que ver pero tener el mismo nombre 2) Tu podrias querer "renombrar" la funcion y tener en cuenta todas sus dependientes (donde la llamas) pero... si la o las librerias son "comerciales" ? renombrando estaras en mas problemas porque tu codigo se volvera mucho mas incompatible al momento de actualizarlas. 3) Podras decir...y por que colocas tantos espacios de bloque Namespace ? sera que puedo quitarle el Namespace al include ? RTA: nope. Ese no porque los archivos que tengan Namespace deben comenzar como primera clausula con un Namespace justamente! Curiosidad... el Namespace "global" equivale a no tenerlo... excepto que aplica la regla de arriba... entonces el codigo que teniamos antes equivale a:
Código PHP:
Ver original En fin.... no soy un experto... a penas las estoy usando... ojala te solucionen algo Mas
__________________ Salu2! Última edición por Italico76; 16/07/2013 a las 06:13 |
| ||||
Respuesta: variables globales dentro de funciones.. Qué interesante. Ni idea que existía. También creo que parecen clases, pues encapsulan las funciones. Gracias por compartir la información. Por otra parte te comento que estoy resolviendo el asunto de los parámetros con un pequeño método que compartí en el foro hace tiempo, el cual permite colocarlos en cualquier orden -y hasta de manera más amigable- al invocar la función: http://www.forosdelweb.com/f18/aport...dpress-906484/ Saludos. |
| ||||
Respuesta: variables globales dentro de funciones.. Cita: Me parece bien, esa solucion que encontrastes para vos tiene una Gran ventaja y es que puedes hacer un Search&Replace en algun editor que soporte expresiones regulares como el Notepad++ para las llamadas a esas funciones y solucionar facil tu problema en 5 min a nivel de todo tu codigo. EXCELENTE SOLUCION !!!
Iniciado por metacortex ... estoy resolviendo el asunto de los parámetros con un pequeño método que compartí en el foro hace tiempo, el cual permite colocarlos en cualquier orden -y hasta de manera más amigable- al invocar la función: http://www.forosdelweb.com/f18/aport...dpress-906484/ Otra forma (la mas usual) de no liarse con el orden de parametros es enviando un array asociativo de los mismos Supon tenias esto:
Código PHP:
Ver original Fijate lo facil que la adapto:
Código PHP:
Ver original Al mini-chequeo no le des importancia.... solo verifico que sea un array() y que tenga entre 3 y 4 "parametros" puesto que uno de ellos es opcional (articulo) *** Tu funcion puede tener como invariante "todo" excepto las primeras lineas o primera linea,.. el extract() aunque si tu necesitas devolver "algo" haras un return
__________________ Salu2! Última edición por Italico76; 17/07/2013 a las 05:31 |
Etiquetas: |