Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Saudações, gostaria de saber como usar uma variável em vários arquivos sem precisar definir ela sempre.
por exemplo:
tenho o arquivo 1.php, que ocntem uma variável $varUm = "valor definido neste arquivo";
e o arquivo 2.php deve mostrar a $varUm com um echo $varUm;
só que ao rodar o arquvo 2.php, fala que a variável $varUm não esta definida, mesmo com o arquivo 1.php devidamente incuido.
como resolver isso?
olha, arquivo 1
<?php
/*
metadados.php
*/
$CamD = __DIR__;
arquivo 2
<?php
/*
index.php
*/
include ("../metadados.php");
echo "o Arquivo de Dados está localizados em: " . $CamD;
quando executa o arquivo 2, aparece: Undefined variable: CamD
Habilite todas as exibições de erro, como mostrado neste tópico. Coloque as duas linhas logo após da tag <?php em ambos os arquivos
Execute de novo e veja qual erro aparece.
É bem provável que o include tenha falhado e o erro esteja sendo ocultado
Warning: include(../metadados.php): failed to open stream: No such file or directory on line 6
Warning: include(): Failed opening '../metadados.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') on line 6
olha o q apareceu
Então ? Significa que você digitou o caminho incorreto para o arquivo.
Então ? Significa que você digitou o caminho incorreto para o arquivo.
pois é cara, mas de fato o arquivo está a um diretório acima de onde eu quero
eu coloquei um echo dentro do metadados.php e inclui ele no arquivo index.php e inclui o index.php no home.php, e apareceu o: failed to open stream, mas o echo foi mostrado, ou seja ele foi incluido, e [/size]pelo index, aparece o echo tbm[/size]
Tudo depende de qual arquivo foi requisitado. O caminho base sempre vai depende do arquivo que iniciou a requisição/execução
Por isso é sempre recomendado usar paths completos. O ideal é que você tenha um sistema de Bootstrapping. Nele, você cria uma constante com o diretório base da aplicação. Depois você sempre usa esse constante para requisitar outros arquivos
Dessa forma não terá problemas com paths relativos
>
Tudo depende de qual arquivo foi requisitado. O caminho base sempre vai depende do arquivo que iniciou a requisição/execução
Por isso é sempre recomendado usar paths completos. O ideal é que você tenha um sistema de Bootstrapping. Nele, você cria uma constante com o diretório base da aplicação. Depois você sempre usa esse constante para requisitar outros arquivos
Dessa forma não terá problemas com paths relativos
Eu nem tenho problema para definir o diretório base, mas eu queria algo mais dinâmico, definir o caminho com o __DIR__, na pasta principal da aplicação para não ter que mudar toda vez que mudar o servidor
Eu nem tenho problema para definir o diretório base, mas eu queria algo mais dinâmico, definir o caminho com o __DIR__, na pasta principal da aplicação para não ter que mudar toda vez que mudar o servidor
Exatamente isso que estou falando.
No seu Bootstrapping, você cria algo assim:
define('BASE_PATH', __DIR__);
Depois todos os paths serão baseados em BASE_PATH
E isso vai independer do servidor, sim, pois os caminhos internos da aplicação serão sempre os mesmos (a não ser que você modifique sua aplicação)
Se você deu require no arquivo1, o echo tem que funcionar sim.
Mostre como fez. Deve haver algum erro
Só uma dica: tome cuidado com variáveis usadas em muitos locais. Isso pode gerar problemas, caso você se esqueça e altere o valor dela. Se for um valor constante, prefira usar uma constante não uma variável