PHP dahil funky sorunu 5.3.0

2 Cevap

Ben, benim yapılandırma dosyasından bir değişken okumak gerekiyor bunun içinde bir sınıf ile php dosyası var. Config dosyası sınıfı ve sınıfın kendisi (hem Require_oncenin ile) dahil olmak üzere, sayfa thats hem de dahildir oluyor. Ancak, ben ($ cfg) okumak gerekir değişken görünüşe göre ben alıyorum hatalara göre, sınıf dosyasında undefined:

Notice: Undefined variable: cfg in / opt / lampp / htdocs / screia / obj / MemberProfile.class.php hattında 45

Ben ekleyerek yapılandırma dosyasında küresel yapmaya çalıştık:

global $cfg;

ama yine de alışkanlık bulabilirsiniz. Belki 5.3.0 de yeni Namespacing ile onlar da dahil olmak üzere semantik değişti bir arkadaşımdan bir öneri vardı. Bu doğru mu?

2 Cevap

Sen global nasıl çalıştığını misunderstading ediyoruz. Bunu değişken kullanarak işlevi vücudunda koymak gerekir. Gibi:

class Something {
    function foo() {
        global $cfg;
        // Code using $cfg here
    }
}

Bu sizin için çalışması gerekir. Ancak, global, ne zaman sen örnek olarak, ya da bir yöntemle sınıfına gerekli yapılandırmayı geçen düşünmelisiniz kullanmak için kötü bir uygulamadır.

Haber atma hattında sınıf dosyası küresel örneğin ile $ cfg önek deneyin global $cfg reading değişken önce.

Ayrıca, bu tür isset($GLOBALS['cfg']) gibi sınıf dosyasında $ GLOBALS, içeriğini kontrol