• ¿Quieres apoyar a nuestro foro haciendo una donación?, entra aquí.

Guia Con Un Codigo

Estimado, estás leyendo solo ua parte del código y no el conjunto, esa línea está dentro de un ciclo:

Código:
for ($x=0;$x<$numero_argumentos;$x++) {
$resultado=$resultado . $array_parametros[$x];
}

es decir, va concatenando la variable (o arreglo en éste caso) $array_parametros[$x] tantas veces como lo diga $numero_argumentos.


por ejemplo más sencillo XD:



Código:
$numero_argumentos=3;
for ($x=0;$x<$numero_argumentos;$x++) {
$resultado=$resultado . $array_parametros[$x];
}

Sería equivalente a escribir:
Código:
$resultado = $array_parametros[0] $array_parametros[1] $array_parametros[2] $array_parametros[3]

Saludos!
 
Drox. Pero entonces que monos pinta "$resultado=$resultado . $array_parametros[$x]" ya que perfectamente podriamos hacer lo mismo sin ese $resultado.

Gracias a ambos por la paciencia.

P.D: Creo que lo entiendo.. seria decir: "".Hola ."".Mundo

Pero igual. Para que mier.... se ponen las comillas. deberia funcionar sin ese $resultado, no ?
 
Drox. Pero entonces que monos pinta "$resultado=$resultado . $array_parametros[$x]" ya que perfectamente podriamos hacer lo mismo sin ese $resultado.

Gracias a ambos por la paciencia.

P.D: Creo que lo entiendo.. seria decir: "".Hola ."".Mundo

Pero igual. Para que mier.... se ponen las comillas. deberia funcionar sin ese $resultado, no ?

Al inicio se pone $resultado = "" para indicar que la variable existe, lo que pasa es que si te das cuenta dentro del for hay una concatenación iterativa que parte con $resultado = $resultado.$array_parametros[$x], por lo que debes dar algo así como una variable de inicio para comenzar con eso. No se si me explico, es como para dar el pie inicial a la concatenación iterativa.
 
XD

Eso mi estimado, es un "acumulador"
recuerda que los codigos se leen de izquierda a derecha, y el "=" no es igual, sino, equivalente, po ejemplo:

si yo tengo

$i=10;

$i=$i+$i

me entregará:

20 verdad??

ahora en un ciclo

for ($i=1;$x=$3;$i++) {

$x=$x+1

}

$x me entregará 3 ¿porque?

cuando i vale "1", x vale "0", entonces:

$x = 0 + 1

por ende: $x=1

Cuando i vale "2", x vale "1" entonces

$x = 1 + 1

por ende $x = 2

Cuando i vale "3" x vale "2" entonces

$x = 2 + 1

por ende $x = 3

Se entiende??


Saludos!
 
PD: trata de no editar tu pregunta, porque después respondo en base a la anterior jajajaj

si quieres agregar o cambiar información puedes poner un post nuevo, trata de editar solo si te equivocaste en algo pequeño.

Saludos!
 
No me estoy explicando bien...

Código:
function concatenar() {
$resultado = "";
$numero_argumentos=func_num_args();
$array_parametros = func_get_args();
for ($x=0;$x<$numero_argumentos;$x++) {
$resultado=$resultado . $array_parametros[$x];
}
return $resultado."<br>";
}
echo concatenar("Hola ","Mundo");

Para X=0 $resultado=""."hola " que equivale a decir $resultado="Hola"
Para x=1 $resultado=""."hola "."mundo" que equivale a decir $resultado="Hola mundo"
Pero si cambia la linea por

Código:
$resultado=$array_parametros[$x];

$resultado="Hola"

con x=1 $resultado="mundo"

Escribi toda esa paja para tratar de entenderlo y ya me quedo mas claro. Mi confusión era porque no conocia la función del punto ($resultado . bla bla) pero ahora me quedo claro (Sobretodo si lo asocio a "echo")

Gracias. Cualquier cosa los vuelvo a molestar :P
 
lo se poner las comillas en $resultado = "";

es solo para que cuando se utilice la función nuevamente, ésta parta de cero (vacío), y no del valor que se tenia antes cuando se terminó de utilizar la ultima vez, recuerda que las variables quedan guardadas si se usan en la misma sesión o página (a menos que sean globales), y la gracia de las funciones es que se puedan utilizar en más de una ocasión así no debes escribir el código denuevo.

Saludos!
 
Código:
<?php
function duplicar_caracteres($cadena) {
$tamanio = strlen ($cadena) ;
$cadena_auxiliar = "";
for ($x = 0;$x < $tamanio; $x++) {
$cadena_auxiliar = $cadena_auxiliar . $cadena{$x}
$cadena{$x};
}
return $cadena_auxiliar;
}
$cadena = "Duplicar las letras";
echo duplicar_caracteres($cadena)¡
?>

No me funca. Alguna ayuda ??. O un ejercicio alternativo para entender bien esa función ? (Que vi hace mucho en C)

El libro dice:

índices de string
Si pensamos en las cadenas como una sucesión de caracteres en un orden
determinado, podemos llegar a desear acceder libremente a parte de los
Cadenas de caracteres y expresiones regulares 117
caracteres. Esto es posible gracias a los símbolos de llave ({ } ) y un índice
numérico que se corresponderá con la posición del carácter que buscamos.
El ejemplo muestra cómo crear una función que duplica las letras de una
cadena aprovechando esta forma de acceder a los caracteres:

Muchas gracias

P.D: Sale una advertencia de no usar [] para caracteres porque esta en desuso. Seria como los arreglos pero en caracteres, no ?
 
Código:
<?php
function duplicar_caracteres($cadena) {
$tamanio = strlen ($cadena) ;
$cadena_auxiliar = "";
for ($x = 0;$x < $tamanio; $x++) {
$cadena_auxiliar = $cadena_auxiliar . $cadena{$x}
$cadena{$x};
}
return $cadena_auxiliar;
}
$cadena = "Duplicar las letras";
echo duplicar_caracteres($cadena)¡
?>

No me funca. Alguna ayuda ??. O un ejercicio alternativo para entender bien esa función ? (Que vi hace mucho en C)

El libro dice:

índices de string
Si pensamos en las cadenas como una sucesión de caracteres en un orden
determinado, podemos llegar a desear acceder libremente a parte de los
Cadenas de caracteres y expresiones regulares 117
caracteres. Esto es posible gracias a los símbolos de llave ({ } ) y un índice
numérico que se corresponderá con la posición del carácter que buscamos.
El ejemplo muestra cómo crear una función que duplica las letras de una
cadena aprovechando esta forma de acceder a los caracteres:

Muchas gracias

P.D: Sale una advertencia de no usar [] para caracteres porque esta en desuso. Seria como los arreglos pero en caracteres, no ?

Sinceramente yo siempre he ocupado [] para esos efectos, si quieres algo mas pulento prueba con la secuencia de control foreach.

foreach($string as $char){
//aqui lo que quieras
}

No recuerdo si resulta pero debería.
 
Ta bien. Pero me interesaba ver por que no funciona el codigo. Me dan lo mismo los corchetes por ahora

Podrias revisarlo por favor ?. O en su defecto dar uno alternativo que cumpla la función de entender esa función ?

Gracias señor Framework :D
 
Bueno. gracias a San Google cache el error.

$cadena_auxiliar = $cadena_auxiliar . $cadena{$x} . $cadena{$x};

Era un error del manual. La linea puesta de esa forma funciona perfecto.

Gracias por su paciencia.

P.D: Algun manual sin errores y completo que me recomienden ?? (El mio enseña desde librerias GD hasta Smarty)
 
Bueno. gracias a San Google cache el error.

$cadena_auxiliar = $cadena_auxiliar . $cadena{$x} . $cadena{$x};

Era un error del manual. La linea puesta de esa forma funciona perfecto.

Gracias por su paciencia.

P.D: Algun manual sin errores y completo que me recomienden ?? (El mio enseña desde librerias GD hasta Smarty)

Eso de todos modos no debería darse... en fín.

Yo para trabajar me guío por el manual que php tiene online, es lejos el mejor explicando porque tiene ejemplos y la misma gente va aportando con datos.

www.php.net nu mas :).

Suerte en tu búsqueda :D.
 
creo que cuando pusiste:

echo duplicar_caracteres($cadena)¡

al final va un ;(punto y coma) y no un ¡(inicio exclamación)

Saludos!
 
Código:
<?php

/**
* @autor [GaDo]
* @copyright 2011
* Creado el día 19 del mes 1 del año 2011 a las 23:40
*/

$formulario = <<<INICIO
<form>
<input type"text" name="Nombre" value="Hernán Montes E.">
<br>
<input type="submit" name="submit" value="Enviar">
</form>
INICIO;
echo $formulario;

?>

No cache este codigo. INICIO pasa a ser una función o que ??. Cual es el aporte de "<<<" ?

Gracias

P.D: Tendre que hacer un topic diciendo. "Ayudando a Twinsen a aprender a programar" pero en verdad prefiero preguntar este tipo de cosas que despues darmelas de capo y dar juego a litros.
 
dignifica que la variable $formulario contiente todo lo siguiente:

Código:
<form>
<input type"text" name="Nombre" value="Hernán Montes E.">
<br>
<input type="submit" name="submit" value="Enviar">
</form>

lo de INICIO es el nombre que le dan al subconjunto de la variable, solo indica donde comienza y termina la variable.

<<< //comienza
; //termina

se le pone una palabra solo para que no se confunda el punto y coma con algo que quieras introducir dentro de la variable


Saludos!
 
Muchas gracias !! En la mañan lo vi y me quedo clarito.

Tienen algun ejemplo que funcione de estas 3 funciones?

- ltrim, chip, trim

Vi el de la web oficial de Php pero tiene cosas que aun no he visto.

Gracias :)
 
Muchas gracias !! En la mañan lo vi y me quedo clarito.

Tienen algun ejemplo que funcione de estas 3 funciones?

- ltrim, chip, trim

Vi el de la web oficial de Php pero tiene cosas que aun no he visto.

Gracias :)

Te voy a dejar un ejemplo del trim porque ando cortito de tiempo.

Código:
function removeBlankSpaces($value){
echo trim($value);

}

//Llamando a la función, para el ejemplo
$var = "                       Aquí a mi lado hay un espacio en blanco               ";
removeBlankSpaces($var);

Si no sirve avisame y reviso con mas calma XD.

Saludos!
 
Espero tus otros ejemplos mañana. Gracias

Mañana retomare el aprendizaje y vere tu codigo :)
 
Código:
function removeBlankSpaces($value) {
echo strlen($value)."<br>"; 
echo strlen(trim($value))."<br>";
echo strlen($value).$value;
}

//Llamando a la función, para el ejemplo
$var = "                          Aqui a mi lado hay un espacio en blanco               ";
removeBlankSpaces($var);

Cambie tu codigo. En el segundo echo recien puedo ver que efectivamente se saca los espacios de $value pero no lo hace de forma permanente, vale decir, Al final la función $value sigue teniendo los 80 caracteres originales. Asi deberia funcionar ??

Y chip y ltrim ??

Gracias por tu infinita paciencia :)
 
Ahora en arreglos ... aaaaarrrghhh

Código:
<?php

$colores = array("fuertes", "suaves");
$colores["fuertes"] = array ("rojo" => "FF0000", "verde" => "00ff00", "azul" => "0000ff");
$colores["suaves"] = array ("rosa" => "FE0ABC", "amarillo" => "FDF189", "malva" => "9A2F68");
echo "elementos de 1 dimensión " . count($colores) . "<br>";
echo "elementos de 2 dimensiones " . count($colores["fuertes"]);

?>

Se supone que estoy haciendo

$colores["fuertes"]["rojo"], $colores["fuertes"]["verde"], $colores["fuertes"]["azul"]
$colores["suaves"]["rosa"], $colores["suaves"]["amarillo"], $colores["suaves"]["malva"]

Entonces por que cresta count($colores) me arroja 4 y no 2 como, segun yo, deberia de ser ??

edit: Se supone que $colores = array("fuertes", "suaves"); implica que $colores[0]="fuertes" y $colores[1]="suaves" pero se me enreda la cosa

edit2: Si uso este otro codigo

Código:
<?php

$colores = array("fuertes" => array ("rojo" => "FF0000", "verde" => "00ff00", "azul" => "0000ff"), "suaves" => array ("rosa" => "FE0ABC", "amarillo" => "FDF189", "malva" => "9A2F68"));

echo "elementos de 1 dimensión " . count($colores) . "<br>";
echo "elementos de 2 dimensiones " . count($colores["fuertes"]);

?>

Alli count($colores) me da 2 (como deberia ser de un principio). Alguien me explica que esta pasando por favor?
 
Volver
Arriba