PHP - tan fácil ... que es imposible !!

   
Vista:

tan fácil ... que es imposible !!

Publicado por Nouble (15 intervenciones) el 31/03/2012 01:37:22
<?php

$mienlace = "pagina.php?x=".$variable;

// códigos varios
$variable = "12345";

echo $mienlace;

// el resultado es, lógicamente:
pagina.php?x=

// lo que yo quiero que salga es:
pagina.php?x=12345

?>
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 xve

tan fácil ... que es imposible !!

Publicado por xve (5519 intervenciones) el 31/03/2012 09:37:40
Hola Nouble, lo que intentas hacer, no te funciona, ya que cuando asignas la variable, no tiene valor... pero hay soluciones para ello... puedes utilizar una función que te asigne la variable... te muestro un ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$variable="";
function asignarVariable($value)
{
    global $variable;
    $variable=$value;
    return "pagina.php?x=".$variable;
}
$mienlace = asignarVariable("12345");
 
echo $mienlace;
?>

De esta manera, cada vez que asignes la variable, tendrás el enlace correcto.

Espero que te sirva...
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

tan fácil ... que es imposible !!

Publicado por Nouble (15 intervenciones) el 31/03/2012 11:30:27
Hola xve, ante todo muchas gracias por contestar. He estado leyendo muchas respuestas tuyas por el foro que dejan claro quien es el putoamo

Llevo semanas atascado por cabezonería ya que, efectivamente, puedo usar otras soluciones indirectas (como una función como tú me dices, o un require/include, o arrays con nombres=valores, o didivir la plantilla, etc). Pero, en lo más profundo de mi ser, siento que son parches y ensucian mi código

Busco algo tan simple como que PHP no ejecute la variable hasta después. Que primero sea un nombredevariable y que después coja un valor.
Se que la solución debe ser algo como str_replace, o ${variable}, o &$variable o $$variable... pero mi coeficiente de inteligencia no termina de comprender para qué sirven las referencias si no valen para esto.

Te dejo un código que más claro que el anterior.

<?php


$variable = "";
$enlace = "pagina.php?x=$variable";

PresentaEnlaces( $enlace );
exit();


function PresentaEnlaces( $enlace )
{

// bastante código
$variable = "12345";
// más código
echo $enlace;
// más código aún
}
?>
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

tan fácil ... que es imposible !!

Publicado por oscar (15 intervenciones) el 11/04/2012 14:36:14
Buenas, que te pareceria esto?

$c_mienlace='$mienlace="mipaggina.php?x=$variable";';
bla bla bla
$variable=12345;
eval($c_mienlace);

No he testeado este codigo, pero esta basado en que, si usas comilla simple en lugar de doble, php no sustituye variables.
Ya diras algo.
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

tan fácil ... que es imposible !!

Publicado por Nouble (15 intervenciones) el 18/04/2012 12:31:51
MARAVILLOSO !!!!!! sólo he tenido que retocar un poco tu código para que funcionara... MAGNÍFICO !! gracias.

$variable = (string) "0";

$enlace = (string) 'mipagina.php?x=$variable';

//algún código

$variable = (string) "12345";

eval( "\$enlace = \"$enlace\";" );

echo $enlace; // mipagina.php?x=12345
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