将变量用于多个输出? [PHP功能]

时间:2015-11-14 11:19:42

标签: php preg-replace this

我目前是初学者,刚开始我的第一个大项目,而我有空闲时间,我想做的基本上是将变量写入html / tpl文档,我目前有工作了,这是我的代码:

private function index(){
    $username = 'MyUsername';
    $onlineTime = 'MyOnlineTime';
    $this->setParams('Username', $username); // $username Will be replaced by database queried results once completed.
}

这是setParams函数。

function setParams($item1, $item2){

    ob_start();
    $theme = 'default';
    include_once T . '/'.$theme.'/index.php';   // T . is defined at the beginning of the document.
    if ((($html = ob_get_clean()) !==  false) && (ob_start() === true))
    {
    echo preg_replace('~{(['.$item1.']*)}~i', ''.$item2.'', $html, 1);
    }
    }

这是html / tpl文档中的编码。

{username} has been online for {onlineTime} Hours

对于你们中的一些人来说这可能是一个非常简单的代码,但这是我的第一次尝试,这就是我所能做的。

我想要做的就是让你可以根据需要多次设置PARAS,而不像这样更改$ variable名称:

private function index(){
    $username = 'MyUsername';
    $onlineTime = 'MyOnlineTime';
    $this->setParams('Username',$username);
    $this->setParams('OnlineTime', $onlineTime);
}

同时保持setParams($item1, $item2)

但是你可以想象这只会完全削减代码。有谁知道这个问题的解决方案?我整天都在搜索,没有任何真正的运气。

先谢谢,

拉​​尔夫

1 个答案:

答案 0 :(得分:0)

我认为你需要的是一个带静态方法的类;

<?php
class Params {

    public static $params = array();

    public static function setParam($key, $value) {
        self::$params[$key] = $value;
    }

    public static function getParam($key) {
        if (isset(self::$params[$key])) {
            return self::$params[$key];
        }
    }

}

// Usage

// Set Username
Params::setParam("username", "JohnDoe");
Params::setParam("password", "12345");

echo Params::getParam("username");
echo Params::getParam("password");