Desenvolvimento - PHP
Variáveis Superglobais em qualquer versão do PHP4
Veja como simular as variáveis superglobais do PHP em versões anteriores à 4.1.0.
por Alfred Reinold BaudischAs variáveis superglobais ($_POST, $_GET, $_SESSION, etc..) foram introduzidas no PHP 4.1.0. Então, a partir daí, todos passaram a escrever código as usando. Mas, como ainda existem muitos usuários que ainda usam versões do PHP anteriores à 4.1.0, alguns códigos passaram a não funcionar na máquina desses usuários, justamente pelas superglobais.
Reescrever todo o código que contém superglobais para funcionar com versões anteriores a 4.1.0, iria ser muito trabalhoso e até em partes, burrice (pois o código não iria ser adaptado às novas tendências do PHP), pois em todo local que você usasse superglobais, você iria ter que substitui-las, por suas antigas "primas", no caso:
$HTTP_POST_VARS no lugar da superglobal $_POST, $HTTP_GET_VARS no lugar da superglobal $_GET e assim vai.
Quando você usa as superglobais dentro de funções, não há a necessidade de importa-las com a diretiva global, pois, enfim, elas são superglobais! Mas, anteriormente, era necessário, ex: global $HTTP_GET_VARS. E caso você modifique seu código de superglobal => globais, terá de importar em todas as funções.
Para facilitar esse processo, criei a classe "superglobais". Caso a versão do PHP em uso numa máquina seja anterior à 4.1.0, a classe irá criar as variáveis $_POST, $_COOKIE, $_SERVER, $_FILES e $_REQUEST! Poupando de você muito trabalho de reescrita.
Mas e você está se perguntando: "Tá, mas como torna-las superglobais?". Bom, infelizmente o PHP não possui nenhuma função para tornar alguma variável superglobal (espero que isso seja desenvolvido algum dia, quem sabe no PHP5), então, você terá que ter o trabalho de importa-las em suas funções, através da função "importar" da classe.
A função irá retornar "TRUE" caso a versão em uso do PHP seja anterior a 4.1.0, então você importará as variáveis desejadas.
Ex: em uma função você usa a $_POST e $_COOKIE, então, sua função se parecerá com isso:
Listagem 1: Função utilizando POST e COOKIE
<?php function minha_funcao() { if(superglobais::importar()) { global $_POST, $_COOKIE; } echo $_POST["nome"] . " - Username: " . $_COOKIE["username"]; } ?>
Já vi vários códigos OPEN-SOURCE do PHP que usam apenas as superglobais sem nenhuma simulação das mesmas para usuários que forem a rodar o código em versão anterior a 4.1.0, o sistema então não funciona. Então, essa classe pode ser muito útil.
Clique aqui para fazer o download da classe.Alfred Reinold Baudisch alfred@auriumsoft.com.br www.auriumsoft.com.br