如何连接多个类来构建单个数组?

时间:2017-03-18 11:30:36

标签: php arrays

我有多个文件,每个文件都有自己的PHP类,在一些函数中,在这些类中,我调用了另一个我设置构建数组的类中的函数。为了形象化,我有

Class 1 - Runs I15_Helper::buildlog('Some text');
Class 2 - Runs I15_Helper::buildlog('Some other text');
Class 3 - Runs I15_Helper::buildlog('Some more text');

Class I15_Helper - 有一个名为buildlog的函数,用于创建传递给它的文本数组。

对此的解决方案可能是显而易见的,我只是没有看到它。下面是我试图用来构建数组的函数。我假设我可以通过在会话中存储数组来实现这一点,但我希望有更好的方法来处理它。

public static function buildlog($text, $submitlog = false) {
if(!is_array($log_array)) {
        $log_array = array();
}

if($text != "") {
        array_push($log_array, $text);
}

    if($submitlog) {
        log($log_array);
    }
}

1 个答案:

答案 0 :(得分:1)

定义static array将帮助您获得所需的输出。 定义一个简单的array将无济于事,因为在您调用静态函数$this之后,您将无法使用buildlog引用该数组,因此存在no object is in current context }。

class I15_Helper
{
    public static $logArray=array();
    public static function buildlog($text, $submitlog = false)
    {
        if ($text != "")
        {
            array_push(self::$logArray, $text);
        }

        if ($submitlog)
        {
            log($log_array);
        }
    }

}
I15_Helper::buildlog("sa");
I15_Helper::buildlog("sasa");
I15_Helper::buildlog("sasasa");
print_r(I15_Helper::$logArray);

<强>输出:

Array
(
    [0] => sa
    [1] => sasa
    [2] => sasasa
)