Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Nombre de función dinámico

Estas en el tema de Nombre de función dinámico en el foro de PHP en Foros del Web. Buenas tardes. Tengo una duda y no se como solucionarla. En la página home que estoy realizando necesito llamar la misma función más de una ...
  #1 (permalink)  
Antiguo 25/03/2018, 12:22
 
Fecha de Ingreso: noviembre-2002
Mensajes: 130
Antigüedad: 21 años, 5 meses
Puntos: 0
Nombre de función dinámico

Buenas tardes.
Tengo una duda y no se como solucionarla.

En la página home que estoy realizando necesito llamar la misma función más de una vez. Y me salta el error que no puede declararse 2 veces la misma función.

Cuando llamo a LimitarPalabras 2 o 3 veces me salta el error.
Había pensado poner el id del registro en cada llamada de la función, pero no se como hacerlo. El id del registro es en este caso $rss['bloqueid'].
El código es este:

Código PHP:
<?
function LimitaPalabras($cadena$longitud) {
  
$palabras explode(' '$cadena);
  if (
count($palabras) > $longitud)
    return 
implode(' 'array_slice($palabras0$longitud));
  else
    return 
$cadena;
}

$cadena $rss['blo_descripcion'.$idioma];
$numero count(explode(" "$cadena));
print 
LimitaPalabras($cadena,210);
?>

La idea sería que automáticamente me creara la funcion LimitaPalabra1, LimitaPalabra2, etc... según el id del registro.

Si hay alguien que sepa como solucionarlo, estaré muy agradecido.
Gracias de antemano.
Un saludo
  #2 (permalink)  
Antiguo 25/03/2018, 13:37
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Nombre de función dinámico

Hola Faser,

La función se declara una vez y se puede usar todas las que necesites, pero no la puedes declarar cada vez que la vayas a usar. Con function la declaras y para llamarla no debes poner function.
  #3 (permalink)  
Antiguo 25/03/2018, 14:02
 
Fecha de Ingreso: noviembre-2002
Mensajes: 130
Antigüedad: 21 años, 5 meses
Puntos: 0
Respuesta: Nombre de función dinámico

Muchas gracias rbczgz.
Me has solucionado el problema... Me estaba volviendo loco..

Por si alguien quiere el código aquí les dejo (algo rudimentario) el código para contar palabras y límitar el texto a X pañabras..

Aquí declaro la función
<?
function LimitaPalabras($cadena, $longitud)
{
$palabras = explode(' ', $cadena);
if (count($palabras) > $longitud)
return implode(' ', array_slice($palabras, 0, $longitud));
else
return $cadena;
}
?>

Y aquí la llamo. Si el número de palabras es mayor que 180 entonces hago aparecer el texto "Leer más"

<?php
$cadena = $rss['blo_descripcion'.$idioma];
$numero = count(explode(" ", $cadena));
//print "La cadena contiene $numero palabras";
print LimitaPalabras($cadena,180);
?>
<?php if($numero>=180) {?>
<hr>
<a href="#">&nbsp;Leer más</a>
<?php }?>
  #4 (permalink)  
Antiguo 25/03/2018, 23:10
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Nombre de función dinámico

Hola Faser,

Me alegro de haberte servido de ayuda. Cuando publiques código, no olvides hacerlo con su correspondiente highlight.

Etiquetas: funcion, nombre, numero, registro
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 05:19.