PHP Olası Multi-Instanced Nesne Sorunu

1 Cevap php

Ben "on line 35 page.class.php olmayan bir nesne üzerinde bir üye işlev process_data, Call ()" a alıyorum nesnesi olarak adlandırılır olsa bile.

Burada nesne çabuk hazırlanabilir olan gösteren index.php ekstraksiyonudur

// require our common files
require("modules/module.php");
require("registry/objects/datetime.class.php");
require("registry/objects/page.class.php");


// load in all the objects
$datetime = new dateandtime;
$page = new page;
$module = new module;

Daha sonra, işlem sınıfı geçer

        require("template.class.php");
    	$template = new template($php_path . "controllers/themes/adm/" . $page . ".html");

    	// Place in both commonly used language and page specific language
    	$template->language($php_path . "controllers/language/en/adm/common.php");
    	$template->language($php_path . "controllers/language/en/adm/" . $page . ".php");

    	// Tell the page's module to load in data it needs
    	$module->process_data("module_" . $page);

    	// Output the final result
    	$template->output();

PHP hata atıyor bu noktada bulunuyor. Aşağıdaki gibi module.php dosyanın içeriği olan

class module {

    public function process_data ($child) {
    	require($child . ".php");
    	read_data();
    	return true;
    }
}

Ben ikinci yapıştırılan kodundaki için örnek beyanname hareketli denedim, ama sınıf "modül" de "şablon" bazı sınıfların kullandığı o çağırır çünkü bu, daha hataları oluşturur - yani aynı sorunu sadece daha aşağı oluşur çizgi.

Onu yanlış, ya da tamamen eksik ne alıyorum, ben bu ikinci eminim ama ben burada gerçekten yardıma ihtiyacım var. Teşekkürler

1 Cevap

Eğer nesne yöntemi çağırmak çalıştığınızda değişken $ modül kapsamında değilmiş gibi görünüyor bana. Eğer $ modül> process_data ("module_". $ Sayfa) önce var_dump ($ modülü) deneyebilirsiniz. Bu işlevin sonucu nedir? Hızlı çözüm $ modülü küresel ilan edilebilir, ancak globallerinin (eğer çalışırsa ancak kontrol edilebilir) zaten çok iyi bir fikir değildir.