我有多个文件,每个文件都有自己的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);
}
}
答案 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
)