Como definir variáveis globais na página de modelo?

2

Eu sei que isso funciona.
Em functions.php do:

$variable = "value";

e em header.php use:

global $variable;
echo $variable;

É possível definir uma variável global na página do modelo ou incluir o arquivo php?

    
por Jows 04.06.2014 / 11:30

1 resposta

7

Em qualquer lugar do seu script, você pode definir uma variável global da seguinte forma:

Usando a matriz superglobal $GLOBALS . Essa matriz é predefinida pelo PHP e está disponível em todos os escopos.

É uma matriz associada, contendo todas as variáveis globais como um par de valores-chave. ie: a chave será o nome da variável e o valor será o valor da variável.

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

E pode ser acessado como:

$variable = $GLOBALS['variablename'];

ou

global $variable;

para saber mais ref: Âmbito da variável PHP

EDIT: Enquanto respondia, eu supus que o usuário sabia sobre o método 2, mas ao reler parece que ele não está ciente disso, então estou mencionando abaixo.

Método 2:

você pode definir a variável global usando a palavra-chave 'global' também. por exemplo, código:

// file1.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'

Observação: o código não foi testado

    
por MortalViews 04.06.2014 / 11:38