Есть ли причина, по которой вы не используете классы для этого? Это звучит как проблема, которая выиграет от ООП. Например:
class PageHeader
{
private $m_sDoctype;
private $m_sDescription;
// other member vars, such as an array of css files
function __construct($doctype, $desc)
{
// set your default values
$this->m_sDoctype = _isset($doctype) && $doctype != null ? $doctype : 'html4';
$this->m_sDescription = _isset($desc) && $desc != null ? $desc : 'My Page';
}
function render()
{
// dump out html however you see fit
}
}
class BasePage
{
private $m_oPageHeader;
// other member vars
function __construct($doctype, $desc)
{
$m_oPageHeader = new PageHeader($doctype, $desc);
}
function render()
{
$this->m_oPageHeader->render();
}
}
index.php (или ваша домашняя страница):
var $page = new BasePage(null, 'Home Page');
$page->render();
Пара замечаний:
- Это очень упрощенный пример
что я не проверял
- Я знаю, что это не совсем то, что
вы искали (как вы были
ищу решение для вашего массива
проблема), но я разрабатывал
небольшой каркас для себя, это
безусловно, так, как я бы пошел
делать это, поскольку есть явные преимущества
использовать ООП в любой среде.
Редактировать: я забыл упомянуть, что, используя конструкторы со значениями по умолчанию, вы получаете желаемую функциональность с наличием значений по умолчанию, но также с возможностью их перезаписи.