2010-11-12 15 views
12

vi este código

if (is_null($$textVarName)) { 
$$textVarName = $_defaultTexts[$type]; 
} 

lo que es código "$$"?

+0

posible duplicado de [? Lo que hace $$ significar en PHP] (http://stackoverflow.com/questions/2715654/what-does-mean-in-php) – Gordon

+0

* (relacionado) * [¿Qué significa ese símbolo en PHP] (http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – Gordon

+0

Muchas gracias Gordon – meotimdihia

Respuesta

31

Es malo lo que es.

Eso tomará el valor que está en $textVarName y lo usará como un nombre de variable. Por ejemplo:

$foo = 'hello'; 
$hello = 'The Output'; 
echo $$foo; // displays "The Output" 
+0

@ VoteyDisciple; ¿es eso interminable? ¿Puedo tener '$$$ foo'? O se detiene a las dos? – BeemerGuy

+4

@Beemer: es interminable. Por cierto, es más rápido intentarlo que preguntar y esperar la respuesta. – zerkms

+0

@zerkms: gracias por la respuesta, pero ¿se te ocurrió que quizás no tenga un compilador a mano? – BeemerGuy

4
foreach($_POST as $key=>$value)$$key=$value; 

ahora, automágicamente, si la forma anterior tenía un campo denominado 'nombre de usuario' ahora tiene una variable llamada $ nombre de usuario que contiene el valor presentado en el formulario. no es el mejor método o seguro, pero cuando tienes un bolsillo lleno de clavos, este es un martillo

esto es una mala práctica y nunca se recomienda, pero todos los programadores de PHP que conozco en secreto me gusta.

+1

Hola, soy cacahuete y soy un codificador PHP. Ahora me conoces. Lo odio completamente :-) (por supuesto, realmente no me gusta PHP, pero paga las facturas, así que lo hago) – Cfreak

+0

A pesar de ser una mala práctica ... ¡Me encanta! Una vez tuve como 50 entradas en '$ _POST' y definitivamente no fue divertido hacer una variable para cada una (incluso con la automatización de algo como Excel). Ojalá supiera este atajo en ese momento. – BeemerGuy

+5

Tenga en cuenta que puede usar 'extract ($ _ POST, EXTR_PREFIX_ALL," p _ ")' para lograr el mismo efecto, además de más seguridad con un prefijo de variable. Puntos de bonificación para el filtrado 'array_map'. – mario

Cuestiones relacionadas