Foros del Web » Programando para Internet » PHP »

funcion goto version 5.3 php

Estas en el tema de funcion goto version 5.3 php en el foro de PHP en Foros del Web. Hola, tengo una aplicacion en donde utilizo la sentencia goto, la cual funciona a partir de la version 5.3 y en el servidor donde tengo ...
  #1 (permalink)  
Antiguo 28/06/2011, 12:00
 
Fecha de Ingreso: mayo-2011
Mensajes: 32
Antigüedad: 12 años, 11 meses
Puntos: 1
funcion goto version 5.3 php

Hola, tengo una aplicacion en donde utilizo la sentencia goto, la cual funciona a partir de la version 5.3 y en el servidor donde tengo alojada la pagina, esta la version 5.2.16 y no se puede ampliar el servidor. Hay alguna funcion parecida que se puede utilizar para hacer lo mismo?

Saludos
  #2 (permalink)  
Antiguo 28/06/2011, 12:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: funcion goto version 5.3 php

Para nada, si la función es exclusiva de PHP 5.3 no hay nada que puedas hacer.

Además, ¿por qué es tan necesario el goto?

¡Esta imagen lo dice todo!


Es un pésima practica, no entiendo por qué lo introdujeron en PHP.

Sería bueno estudiar tu código y ver la posible solución sin tener que recurrir a goto, pues según recuerdo el goto se emplea cuando no tienes ni idea de la programación estructurada u OOP.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/06/2011, 12:20
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: funcion goto version 5.3 php

pues si hay opciones, pero depende de como tengas el código, quizas puedas meter lo que quieres en una función o en un archivo y llamarlo con un include en vez de usar goto.

edit: XDDD de donde sacaste eso pateketrueke? XD
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #4 (permalink)  
Antiguo 28/06/2011, 12:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: funcion goto version 5.3 php

Cita:
Iniciado por stramin Ver Mensaje
[...] edit: XDDD de donde sacaste eso pateketrueke? XD
Es curioso, sale directamente en el manual de PHP.
http://php.net/goto

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 28/06/2011, 12:24
 
Fecha de Ingreso: mayo-2011
Mensajes: 32
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: funcion goto version 5.3 php

EL CODIGO ES ESTE:

echo "Dicta clases en: ";

if (!empty($registro['clase1'])) {
echo "<li>";
$texto=$registro['clase1'];
$texto = wordwrap($texto, 50, "<br>", true);
echo utf8_encode($texto);
echo "</li>";
}
else{
goto experiencia; mira aca esta el goto... si el item clases esta vacio pasa directamente a expreciensias.. fijate mas abajo
}

if (!empty($registro['clase2'])) {
echo "<li>";
$texto=$registro['clase2'];
$texto = wordwrap($texto, 50, "<br>", true);
echo utf8_encode($texto);
echo "</li>";
}
else{
goto experiencia;
}

if (!empty($registro['clase3'])) {
echo "<li>";
$texto=$registro['clase3'];
$texto = wordwrap($texto, 50, "<br>", true);
echo utf8_encode($texto);
echo "</li>";
}
else{
goto experiencia;
}

if (!empty($registro['clase4'])) {
echo "<li>";
$texto=$registro['clase4'];
$texto = wordwrap($texto, 50, "<br>", true);
echo utf8_encode($texto);
echo "</li>";
}
else{
goto experiencia;
}

if (!empty($registro['clase5'])) {
echo "<li>";
$texto=$registro['clase5'];
$texto = wordwrap($texto, 50, "<br>", true);
echo utf8_encode($texto);
echo "</li>";
}
else{
goto experiencia;
}

if (!empty($registro['clase6'])) {
echo "<li>";
$texto=$registro['clase6'];
$texto = wordwrap($texto, 50, "<br>", true);
echo utf8_encode($texto);
echo "</li>";
}
else{
goto experiencia;
}


//tercer salto
experiencia: salta aca........

echo "<p>";

echo "Experiencia profesional:";

if (!empty($registro['experiencia1'])) {
echo "<li>";
$texto=$registro['experiencia1'];
$texto = wordwrap($texto, 50, "<br>", true);
echo utf8_encode($texto);
echo "</li>";
}

cOMO REEMPLAZO EL GOTO POR UNA VERSION COMPACTIBLE CON LA 5.2
  #6 (permalink)  
Antiguo 28/06/2011, 12:31
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: funcion goto version 5.3 php

si no me equivoco puedes hacerlo así:

Código PHP:
Ver original
  1. echo "Dicta clases en: ";
  2.  
  3. for($w=1;$texto=$registro['clase'.$w] and $w<=6;$w++) {
  4. echo "<li>";
  5. $texto = wordwrap($texto, 50, "<br>", true);
  6. echo utf8_encode($texto);
  7. echo "</li>";
  8. }
  9.  
  10. echo "<p>";
  11.  
  12. echo "Experiencia profesional:";
  13.  
  14. if (!empty($registro['experiencia1'])) {
  15. echo "<li>";
  16. $texto=$registro['experiencia1'];
  17. $texto = wordwrap($texto, 50, "<br>", true);
  18. echo utf8_encode($texto);
  19. echo "</li>";
  20. }

un solo for que comprueba si claseX existe de 1 a 6 guardando en la variable texto el valor
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #7 (permalink)  
Antiguo 28/06/2011, 12:49
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: funcion goto version 5.3 php

por cierto mis primeros programas fueron en compiladores de videojuegos, donde goto era la única alternativa existente (aparte de hacer 3 whiles anidados) para lograr llegar a un código, tal como dice pateketrueke, tuve mas de un velocirraptor encima mio usandolos...

por suerte el tiempo ha mejorado, ahora tenemos objetos, funciones, clases, for(), que nos facilitan un poco la vida. XD

sin embargo supongo que si lo incluyeron debe ser por algo... aunqué no he necesitado usar goto desde entonces (2003 aprox)...

para repetir el código desde un punto es buena idea usar goto sin tener que estar haciendo ciclos o sea para volver atras, de todos modos no se justifica mucho, no se me ocurre ningun código donde sea obligatorio hacerlo con goto... solo es una buena forma de evitar hacer ciclos para volver a repetir un código... las funciones no siempre sirven para eso en lenguajes como .net, c, java, pero en php está de más...

mi humilde opinión.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #8 (permalink)  
Antiguo 28/06/2011, 13:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: funcion goto version 5.3 php

stramin, yo también conozco los goto; también trabajé alguna ves con ellos.

Pero definitivamente no recomiendo su uso, simplemente me da vergüenza reconocer que lo hayan implementado en php.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 30/06/2011, 12:36
 
Fecha de Ingreso: mayo-2011
Mensajes: 32
Antigüedad: 12 años, 11 meses
Puntos: 1
Respuesta: funcion goto version 5.3 php

Cita:
Iniciado por pateketrueke Ver Mensaje
stramin, yo también conozco los goto; también trabajé alguna ves con ellos.

Pero definitivamente no recomiendo su uso, simplemente me da vergüenza reconocer que lo hayan implementado en php.
muchas gracias por la ayuda, ya consegui solucionarlo.

Saludos
  #10 (permalink)  
Antiguo 12/01/2016, 12:06
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 10 meses
Puntos: 5
Respuesta: funcion goto version 5.3 php

hola, en verdad es vergonzoso usar GOTO?
yo lo uso y pienso que programo en COBOL.... usando eso...

Etiquetas: funcion
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 11:06.