2010-11-12 9 views
12

j'ai vu ce code

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

Quel est le code "$$"?

+0

double possible de [? Qu'est-ce que signifie $$ en PHP] (http://stackoverflow.com/questions/2715654/what-does-mean-in-php) – Gordon

+0

* (apparenté) * [Que signifie ce symbole en PHP] (http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – Gordon

+0

Merci à beaucoup Gordon – meotimdihia

Répondre

31

C'est le mal c'est ce que c'est.

Cela prendra la valeur $textVarName et l'utilisera comme nom de variable. Par exemple:

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

@ VoteyDisciple; est-ce sans fin? Puis-je avoir «$$$ foo»? Ou ça s'arrête à deux heures? – BeemerGuy

+4

@Beemer: c'est infini. Btw, il est plus rapide d'essayer - que demander et attendre la réponse. – zerkms

+0

@zerkms: merci pour la réponse, mais est-ce que vous avez pensé que je n'aurais peut-être pas de compilateur à portée de main? – BeemerGuy

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

maintenant, automagiquement, si la forme précédente avait un champ nommé « nom d'utilisateur », vous avez maintenant une variable appelée $ username qui détient la valeur soumise sous la forme. pas la méthode la plus grande ou sécurisée, mais quand vous avez une poche pleine de clous, c'est un marteau

Ceci est une mauvaise pratique et n'est jamais encouragé, mais tous les codeurs PHP que je connais secrètement sorta comme elle.

+1

Salut, je suis cfreak et je suis un codeur PHP. Maintenant tu me connais. Je déteste ça. :-) (bien sur je n'aime pas vraiment du tout PHP mais ça paye les factures donc je le fais) – Cfreak

+0

Malgré que ce soit une mauvaise pratique ... j'adore !! J'ai déjà eu 50 entrées dans '$ _POST' et ce n'était certainement pas amusant de faire une variable pour chacune (même avec l'automatisation de quelque chose comme Excel). Je voudrais savoir ce raccourci à l'époque. – BeemerGuy

+5

Notez que vous pouvez utiliser 'extract ($ _ POST, EXTR_PREFIX_ALL," p _ ")' pour obtenir le même effet - plus de sécurité avec un préfixe variable. Points bonus pour le filtrage 'array_map'. – mario