2015-09-17 2 views
2

Je dois créer une variable globale en PHP par fonction à utiliser dynamiquement hors fonctionComment créer variable globale Dynamiquement en PHP

J'ai essayé

<?php 
function setthis(newglobal){ 
    global $_.newglobal._1; 
    $_.newglobal._1 = "pampam"; 
} 
setthis(); 

echo $_newglobal_1; 
?> 

et je reçois cette erreur

ligne: 2, Type d'erreur: 4

message: erreur de syntaxe, unexpected ')', 'attendre & 'ou variable (T_VARIABLE)

J'ai aussi essayé de les envelopper dans cité la variable comme

<?php 
function setthis(newglobal){ 
    global $_.'newglobal'._1; 
    $_newglobal_1 = "pampam"; 
} 
setthis(); 

echo $_newglobal_1; 
?> 

un Je reçois erreur message

: erreur de syntaxe, unexpected') ', en espérant' & 'ou variable (T_VARIABLE)

pouvez-vous s'il vous plaît laissez-moi savoir si cela est faisable en PHP? ou ce que je fais mal?

Mise à jour

<?php 
function setthis($name){ 
    $GLOBALS[$name]; 
    $name = "pampam"; 
} 
setthis(); 
echo $name; 
?> 

Répondre

7

Votre erreur est toujours dans l'en-tête de la fonction:

function setthis(newglobal){ 
       //^^^^^^^^^ needs a '$' in front of it 

Ensuite, il suffit d'utiliser le tableau $GLOBALS, par exemple

function setthis($name, $value = "pampam"){ 
    $GLOBALS[$name] = $value; 
} 
+0

pourquoi _toujours_ dans l'en-tête de la fonction? – Kenney

+0

@Kenney Parce que dans les deux tentatives OP a oublié le signe dollar pour indiquer une variable, c'est pourquoi il a obtenu l'erreur dans les deux exemples de code. – Rizier123

+0

Je ne suis pas. '$ _. newglobal._1' semble également ne pas devoir être compilé. – Kenney

2

Vous pouvez définir des noms de variables dynamiques par des supports en utilisant:

$name = 'key'; 
${$name} = 'value'; 
echo $key; // Will echo 'value' 

Comme décrit ici: Dynamic variable names in PHP

Votre code ressemblerait à quelque chose comme:

<?php 

function setthis($global_key, $global_value){ 
    global ${"_" . $global_key . "_1"}; 

    ${"_" . $global_key . "_1"} = $global_value; 
} 

setthis('newglobal', 'pampam value'); 

echo $_newglobal_1; // Will echo 'pampam value' 

?> 

Ou vous peut utiliser le tableau GLOBALS de PHP, disponible (globalement):

<?php 

function setthis($global_key, $global_value){ 
    $GLOBALS[ $global_key ] = $global_value; 
} 

setthis('newglobal', 'pampam value'); 

echo $GLOBALS['newglobal']; // Will echo 'pampam value' 

?> 

Infos sur tous ces éléments sont dans la documentation PHP: http://php.net/manual/en/language.variables.scope.php