¿Cómo establecer variables globales en la página de la plantilla?

2

Sé que esto funciona.
En functions.php do:

$variable = "value";

y en header.php use:

global $variable;
echo $variable;

¿Es posible establecer una variable global en la página de la plantilla o incluir un archivo php?

    
pregunta Jows 04.06.2014 - 11:30

1 respuesta

7

En cualquier lugar de su script, puede definir una variable global de la siguiente manera:

Usando la matriz superglobal $GLOBALS . Esta matriz está predefinida por PHP y está disponible en todos los ámbitos.

Es una matriz asociada, que contiene todas las variables globales como un par clave-valor. es decir: la clave será el nombre de la variable y el valor será el valor de la variable.

$GLOBALS['variablename'] = 'variablevalue';

Y se puede acceder como:

$variable = $GLOBALS['variablename'];

o

global $variable;

para saber más ref: PHP Variable Scope

EDITAR: Al responder, asumí que el usuario sabía sobre el método 2, pero al volver a leer parece que no lo sabe, así que lo menciono a continuación.

Método 2:

también puede definir una variable global utilizando la palabra clave 'global'. por ejemplo, código:

//archivo1.php

class testScope()
{
   function setMsg($msg = 'Hi')
  {
    //the variable need not be already defined in the global scope. 
   global $say;
   $say = 'Hi';
  }

  function say()
  {
    global $say;
    echo $say;
  } 
}

//file2.php 

function getFile1()
{
  include('file1.php');
}

getFile1();

$sayer = new testScope();

$sayer->setMsg(); // this will create a new global variable. 
$sayer->say();
global $say; 
echo $say; 

$say = "I changed it in global scope";

$sayer->say(); // 'I changed it in global scope'

$sayer->set('i changed it inside class');
echo $say; // ' i changed it inside class'

Nota: el código no se ha probado

    
respondido por el MortalViews 04.06.2014 - 11:38

Lea otras preguntas en las etiquetas