A seguir, são apresentados dois scripts em linguagem PHP, construídos para resolver o mesmo problema. Entretanto, eles se diferenciam no tratamento e na utilização da variável global.
Implementação 1:
<?php
error_reporting(E_ALL - E_NOTICE);
$minha_global = 3;
function minha_funcao($meu_parametro)
{
global $minha_global;
return ($minha_global * $meu_parametro);
}
class MinhaClasse
{
var $membro_classe;
function MinhaClasse($parametro_construtor)
{
$this->membro_classe = $parametro_construtor;
}
function FuncaoClasse($meu_parametro)
{
global $minha_global;
return ($minha_global * $meu_parametro * minha_funcao($this->membro_classe));
}
}
$meu_objeto = new MinhaClasse(4);
print("R1: ".$meu_objeto->FuncaoClasse(5));
?>
Implementação 2:
<?php
error_reporting(E_ALL - E_NOTICE);
$minha_global = 3;
function minha_funcao($meu_parametro)
{
return ($minha_global * $meu_parametro);
}
class MinhaClasse
{
var $membro_classe;
function MinhaClasse($parametro_construtor)
{
$this->membro_classe = $parametro_construtor;
}
function FuncaoClasse($meu_parametro)
{
return ($minha_global * $meu_parametro * minha_funcao($this->membro_classe));
}
}
$meu_objeto = new MinhaClasse(4);
print("R2: ".$meu_objeto->FuncaoClasse(5));
?>
Se os scripts PHP forem executados em um servidor Web, com a configuração padrão para execução de scripts PHP, a saída dos scripts será, RESPECTIVAMENTE,