Porque é que esta variável Disappearing?
Pergunta
Esta provavelmente deve ter uma resposta simples Eu só não consigo descobrir.
De qualquer forma, eu tenho um documento php e dentro dele eu defino <?php $pathprefix = '../'; ?>
Mais tarde, no documento que usar um <?php require([somefile.php]); ?>
e dentro de somefile.php, eu tenho uma linha que diz <?php echo($pathprefix); ?>
mas o '../' I atribuído a $ PATHPREFIX nunca aparece. Ele age como a variável não foi instanciado. Qual é o meu problema?
Solução
Realmente precisa ver o seu código-fonte para determinar o escopo. Com o que você forneceu aqui é duas opções:
Situado $ GLOBALS
file1.php:
$GLOBALS['pathprefix']= '../';
file2.php:
require('file1.php');
print_r($GLOBALS['pathprefix']);
Use uma classe
file1.php:
class Settings {
const PATH_PREFIX= '../';
}
file2.php:
require('file1.php');
print_r(Settings::PATH_PREFIX);
Entenda Âmbito em PHP
http://www.php.net/manual/en /language.variables.scope.php
Boa sorte.
Outras dicas
A variável está fora do escopo na "somefile.php". Você poderia declarar a variável global, ou seja global $pathprefix = '../'
. Então, em somefile.php global $pathprefix;
colocar no topo.