Neden bu Değişken Kaybolma nedir?

2 Cevap php

Bu muhtemelen sadece anlamaya olamaz basit bir cevabı olmalıdır.

Her neyse, ben bir php belgesi var ve bunun içinde ben <?php $pathprefix = '../'; ?> tanımlamak

Daha sonra bir <?php require([somefile.php]); ?> ve somefile.php içinde kullanmak belgede, ben bir <?php echo($pathprefix); ?> diyor çizgi ama '.. /' I $ pathprefix atanan gösterir asla. Değişken örneği asla gibi davranır. Benim sorunum nedir?

2 Cevap

Gerçekten kapsamını belirlemek için kaynak kodu görmek gerekir. Burada sağlanan kadarıyla iki seçenek bulunuyor:

Set in $GLOBALS

dosya1.php:

$GLOBALS['pathprefix']= '../';

file2.php:

require('file1.php');
print_r($GLOBALS['pathprefix']);

Use a class

dosya1.php:

class Settings {
 const PATH_PREFIX= '../';
}

file2.php:

require('file1.php');
print_r(Settings::PATH_PREFIX);

Understand Scope in PHP

http://www.php.net/manual/en/language.variables.scope.php

İyi şanslar.

Değişken "somefile.php" kapsam dışında. Sen değişken küresel bildirebilirsiniz, yani global $pathprefix = '../'. Daha sonra somefile.php koymak in global $pathprefix; üstünde.