"Küresel"

3 Cevap php

Ben aşağıdaki gibi bir kod bir bölüm var:

---- File.php ----

require_once("mylib.php");

function($a,$b)
{
    $r = $_GLOBALS['someGlobal'];
    echo $r;
}

---- Mylib.php ----

$_GLOBALS['someGlobal'] = "Random String";

Bu önemsizleştiren biraz, ama tam ben ilgili bazı şeyler buldum değil, bir var bir sorun, ama doğrudan benim soruya cevap bir şey değildir.

; Hiçbir şey $_GLOBALS['someGlobal'] atandı sanki $r "boş" - Ben function($a,$b) hiçbir şey echo'd olduğu aradığınızda, yani

Buna ek olarak, aşağıdaki ile denedim:

global $someGlobal;
$someGlobal = "Random String";

Same thing, no effect. Also, in file.php if I try with global, or with just $someGlobal it still does not work.

Bildiğim kadarıyla, aslında çok yapmak olmaz $someGlobal mylib.php içinde (ve bu file.php en üst düzeyde soktukup) küresel kullanarak php.net üzerinde belgelere zaten beri bildiğim kadarıyla söyleyebilirim kapsamı hiyerarşisinin "üst düzeyde". Ancak, küresel olarak kayıt o işlev içinde erişilen izin düşündüm, ama bu açıkça böyle değil.

Herkes neden açıklamak ve bu çevrede nasıl açıklayabilir misiniz?

Düzenleme: Ben bunu bir işlevi değilse $_GLOBALS['someGlobal']; değer ince kurtarıldı değil file.php kullanmanız gerekiyorsa.

3 Cevap

Yanlış değişken adı. It $GLOBALS değil $_GLOBALS

http://www.php.net/manual/en/reserved.variables.globals.php

From the docs, $GLOBALS değişken herhangi bir _ vardır:

Bu benim için çalışıyor:

$GLOBALS['glob'] = "string";

function foob() {
  echo $GLOBALS['glob'];
}

foob();

It $GLOBALS değil, $_GLOBALS!