Foros del Web » Programando para Internet » PHP »

Curiosidad sobre cadena y array

Estas en el tema de Curiosidad sobre cadena y array en el foro de PHP en Foros del Web. Hola, Supongamos que tengo este code: Código PHP: $a  =  "1" ; $a [ 1 ] =  "f" ; echo  $a ;  Eso me imprime: 1f ...
  #1 (permalink)  
Antiguo 10/07/2005, 19:49
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 13 años, 2 meses
Puntos: 5
Curiosidad sobre cadena y array

Hola,

Supongamos que tengo este code:

Código PHP:
$a "1";
$a[1] = "f";
echo 
$a
Eso me imprime:

1f

¿Por qué?... no entiendo la mezcla de arrays y cadenas...

Es una simple curiosidad. Pensé que iba a dar un error
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #2 (permalink)  
Antiguo 10/07/2005, 19:57
okram
Invitado
 
Mensajes: n/a
Puntos:
no se a q se deba, pero lo voy a usar para listar los errores al enviar un formulario... haber si me hechas una mano con eso, mi post esta en http://www.forosdelweb.com/f18/envio-formularios-con-php-duda-315238/#post1171573 salu2
  #3 (permalink)  
Antiguo 10/07/2005, 20:12
okram
Invitado
 
Mensajes: n/a
Puntos:
en mi nivel de novato en esto del php, creo saber porque pasa eso... no estamos aqui hablando de un array especificamente, yo puse este codigo:

<?
$a = "hola";
$a[2] = "m";
echo $a;
?>

y lo que me lanzo es

homa

creo que en la primera linea lo que se hace es definir la variable $a, y en la segunda buscamos un caracter especifico en la variable para reemplarlo por lo que escribes. es asi q si hubiera puesto en la segunda linea $a[0] = "m"; lo que me hubiera impreso hubiera sido mola... prueba coj tu codigo, solo que en vez de uno ponle 0, lo que hara es imprimirte la letra f solamente

jajja supongo q es asi...
  #4 (permalink)  
Antiguo 10/07/2005, 23:17
 
Fecha de Ingreso: diciembre-2004
Mensajes: 128
Antigüedad: 13 años
Puntos: 0
PHP usa variables dinamicas, variables que se crean a medida que se escriben, por eso siempre hay que tener cuidado, por ejemplo con mayusculas y minusculas para el mismo nombre de variable ($Variable =!= $variable). Ademas el tipo de las variables es dinamico, pueden cambiar con el tiempo, ej: si tengo $variable="texto" y luego hago $variables=1, ahora esta variable apuntara a un tipo de data integer con el valor 1.
Toda esta introduccion es para responder a tu intriga, primero defines una variable comun, $a, pero cuando escribes $a[1], el "interprete PHP entiende" que la estas redefiniendo a un array.
  #5 (permalink)  
Antiguo 10/07/2005, 23:23
 
Fecha de Ingreso: diciembre-2004
Mensajes: 128
Antigüedad: 13 años
Puntos: 0
PHP usa variables dinamicas, variables que se crean a medida que se escriben, por eso siempre hay que tener cuidado, por ejemplo con mayusculas y minusculas para el mismo nombre de variable ($Variable =!= $variable). Ademas el tipo de las variables es dinamico, pueden cambiar con el tiempo, ej: si tengo $variable="texto" y luego hago $variables=1, ahora esta variable apuntara a un tipo de data integer con el valor 1.
Toda esta introduccion es para responder a tu intriga, primero defines una variable comun, $a, pero cuando escribes $a[1], el "interprete PHP entiende" que la estas redefiniendo a un array.
  #6 (permalink)  
Antiguo 10/07/2005, 23:45
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
matigro, ne este caso, PHP no entiende que estés redefiniendo la cadena por un array.
Lo que ocurre es lo que menciona okram.

En el manual está bastante bien explicado. Esto debería hacerse únicamente con llaves "{ }"
Código PHP:
$a "hola";
$a{2} = "m";
echo 
$a
Sinembargo, PHP también permite el uso de corchetes por temas de compatibilidad con versiones anteriores. Pero deja claro que el uso de corchetes para este propósito es obsoleto.

Pueden leerlo en el manual:
http://www.php.net/types.string#lang....string.substr

Saludos
  #7 (permalink)  
Antiguo 11/07/2005, 03:06
 
Fecha de Ingreso: noviembre-2003
Mensajes: 383
Antigüedad: 14 años
Puntos: 2
La respuesta es sencilla:

$a="hola" es un array que se puede descomponer en...

$a[0]="h"
$a[1]="o"
$a[2]="l"
$a[3]="a"

...entonces cuando haces...

$a[2]="m";

...estas cambiando el elemento cuyo indice es 2 por el valor m.
  #8 (permalink)  
Antiguo 11/07/2005, 03:14
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Cita:
Iniciado por pellagofio
La respuesta es sencilla:

$a="hola" es un array que se puede descomponer en...

$a[0]="h"
$a[1]="o"
$a[2]="l"
$a[3]="a"

...entonces cuando haces...

$a[2]="m";

...estas cambiando el elemento cuyo indice es 2 por el valor m.
Pues esa explicación ya la había dado okram más arriba:
Cita:
Iniciado por okram
creo que en la primera linea lo que se hace es definir la variable $a, y en la segunda buscamos un caracter especifico en la variable para reemplarlo por lo que escribes. es asi q si hubiera puesto en la segunda linea $a[0] = "m"; lo que me hubiera impreso hubiera sido mola
Y en el enlace que puse queda todo totalmente claro. Además insisto en que no debehacerse de esa amnera, sino utilizando llaves {} (por recomendación del manual oficial).

Saludos
  #9 (permalink)  
Antiguo 11/07/2005, 09:14
 
Fecha de Ingreso: mayo-2005
Mensajes: 103
Antigüedad: 12 años, 7 meses
Puntos: 1
Es como dice Okram.

Una cadena es un array de caracteres donde el primer elemento tiene el indice 0.

En la mayoria de los lenguajes de programacion no existe el tipo: cadena, y se utiliza como array de caracteres.

Saludos.
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 12:25.