PHP - INVERTIR STRING

 
Vista:
Imágen de perfil de Juan Camilo
Val: 113
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

INVERTIR STRING

Publicado por Juan Camilo (16 intervenciones) el 19/05/2020 08:00:41
Cordial Saludo para todos
Solicito nuevamente su ayuda con el siguiente ejercicio, el cuál debo hacer con ciclo while y la verdad no logro darle solución y quisiera que por favor me orienten. Tiene que ser con el ciclo While, NO PUEDE SER con un for o do while.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
 
/*
Desarrolla un programa que permita invertir la palabra “Programación”.
El resultado debe ser “nóicamargorP”.
 */
class Ejercicio1 {
    private $cont;
    private $palabra;
    private $resultado;
    private $newP;
    public function __construct(String $pal) {
        $this->palabra=$pal;
    }
    public function logitudpalabra(){
        $this->resultado= strlen($this->palabra);
        echo 'La longitud de la palabra es: '.$this->resultado.'<br>';
    }
    public function invertir(){
 
    }
    public function __destruct() {
        echo 'Resultado: '.$this->resultado;
    }
}
$cwh1=new Ejercicio1('Programacion');
$cwh1->logitudpalabra();
$cwh1->invertir();

Aunque el ejercicio brinda un String específico, yo lo quiero hacer para cualquier palabra y no logro dar con la lógica para invertir por ejemplo la palabra dada en el ejercicio.

Agradezo la ayuda que me puedan brindar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Julio
Val: 2.988
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

INVERTIR STRING

Publicado por Julio (830 intervenciones) el 19/05/2020 08:28:15
Hola.

1
2
3
4
5
6
7
8
9
10
11
$palabra = 'prueba';
$palabra_invertida = '';
 
$index = strlen($palabra) - 1;
while ($index >= 0) {
	$palabra_invertida .= $palabra[$index];
 
	$index--;
}
 
echo $palabra_invertida;

Tienes una cadena ($palabra) y quieres invertirla en otra variable ($palabra_invertida). El índice inicial será la longitud de la palabra, atención, menos 1. ¿Por qué? Porque la palabra "prueba" tiene una longitud 6 pero no existe $palabra[6] ya que empezamos a contar desde 0, así que la última letra está en la posición 5, por eso calculamos la longitud menos uno. Así pues, el while se ejecuta mientras el índice sea mayor o igual que 0 (cuando sea -1 saldrá). Y en cada iteración añades a $palabra_invertida la posición que toca de $palabra. Como hemos empezado desde $index, que será 5 en este caso, primero será $palabra[5] que es la "a", luego $palabra de 4 que es la "b", etc. No olvides restar uno al $index cada vez o entrarás en un bucle infinito.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Juan Camilo
Val: 113
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

INVERTIR STRING

Publicado por Juan Camilo (16 intervenciones) el 25/05/2020 23:13:12
Muchas gracias por tu respuesta, sin embargo, hay algo que llama mi atención en el código que me planteas:
En la línea 6 de tu código, tienes un punto(.) antes del igual(=) y pregunto: cuál es su función? qué hace? cómo funciona?

Muchas gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 2.366
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

INVERTIR STRING

Publicado por joel (694 intervenciones) el 26/05/2020 07:37:27
Hola Juan, lo que hace el punto es concatenar....

1
2
3
$a="hola";
$a.=" mundo";
echo $a; // "hola mundo"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Julio
Val: 2.988
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

INVERTIR STRING

Publicado por Julio (830 intervenciones) el 26/05/2020 08:40:34
Como bien te ha dicho Joel, el punto es para encadenar. Y esa forma de ponerlo hace que te evites esto:

1
2
$cadena = 'Hola';
$cadena = $cadena . ' mundo'; // Esto contiene 'Hola mundo'

1
2
$cadena = 'Hola';
$cadena .= ' mundo'; // Esto contiene 'Hola mundo'

Estas dos formas son lo mismo, pero en la primera fíjate que concatenas $cadena y ' mundo' para guardarlo de nuevo en $cadena y la segunda simplemente omite el tener que escribir dos veces $cadena con esa expresión .= para hacerlo. Se puede hacer también con los otros operadores:

1
2
3
4
$numero = 5;
$numero += 1; // $numero contiene un 6
$numero += 1; // Ahora $numero contiene un 7
$numero -= 4; // Ahora $numero contiene un 3

Se utiliza mucho para iteraciones en un bucle o para concatenar cadenas sin tener que escribir dos veces la misma variable.

-----------------------------
Aprende la programación desde una perspectiva básica y simplista en Programación Básica
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar