Minha primeira dúdiva é em relação ao "register_globals" do PHP.ini. Estou usando o Apache, o register_globals está ON, mas eu só consigo obter as variáveis enviadas por metódos GET e POST com o comando $_POST['variável']. Porque não dá para colocar diretamente a variável ($variável em vez de $_POST)?

A minha outra dúvida é sobre programação propiamente dita:
Eu estava querendo fazer uma função que mostrasse numa tabela HTML uma mensagem de erro. Até aí fácil. Porém, são variais mensagens em um outro arquivo. Além disso, em outros arquivos que se não esse eu gostaria de chamar essa função para exibir erros.
Parece fácil, mas eu estou com problemas. Eu construi a função assim:
include "Msgs.php"; //arquivo com as msgs de erro
function Erro($msgs)
{
echo "<table width=\"303\" border=\"0\" cellspacing=\"1\"cellpadding=\"0\" height=\"169\" bgcolor=\"#336699\"align=\"center\"><tr><td bgcolor=\"#336699\" height=\"110\">
<table width=\"311\" border=\"0\" cellspacing=\"1\"cellpadding=\"0\" bgcolor=\"#EEEDEA\" height=\"136\"><tr><td height=\"175\"><div align=\"center\">";
echo "<font face=\"Verdana, Arial, Helvetica, sans-serif\"><b><font size=\"2\">";
return "$msgs";
echo "</font></b>";
}
Ou seja, a função mostrará numa tabela a string $msgs. Feita a função, vamos chama-lá em outro arquivo:
include "Msgs.php"; //arquivo com as msgs de erro
include "Erro.php"; //arquivo com a função
Erro($MsgsQualquer);
Pela lógica (acho eu), ao chamar a função com o argumento $MsgsQualquer, este faria o papel do $msgs, não? Porém, misteriosamente, a tabela fica vazia. Qual diabos seria o problema?