Eğer küresellerle kullanmadan PHP dahil dosyalara değerleri geçebilir?

0 Cevap php

PHP sık sık kullanma eğiliminde bir desen (örneğin $page, $user, $db, vb gibi) birkaç küresellerle ayarlanarak ve ardından bir dosya dahil edilir Bu küresellerle kullanır. Ama, bunun için küresellerle kullanma fikri hiç sevmedim, bu yüzden daha iyi bir yol arıyorum.

Bariz çözüm alt dosyada bir sınıf veya işlev tanımlamak ve dosya dahildir sonra çağırmaktır. Bu gibi bu olsa çalışamaz durumlar vardır:

// Add entries to a URI table from each section of the site
global $router;
$router = new VirtualFileSystem();
$sections = array('store', 'forum', 'blog');
foreach($sections as $section)
    include dirname(__FILE__) . $section . '/routing.php';

// Example contents of 'forum/routing.php'
// implicitly receive $router from caller
$router->add('fourm/topic/', 'topic.php');
$router->add('forum/topic/new/', 'new_topic.php');
// etc

Ben bir işlevi her routing.php sarın ve bir argüman olarak $router ile her onları aramak için çalıştı, aynı işlev adı birden fazla dosya tanımlanan sonra çatışma.

Ben fikir bitti. Küresel ad kirletmeden dahil dosyaları değişkenler geçmek için daha iyi bir yolu var mı?

0 Cevap