使用数组键在foreach循环中连接字符串

时间:2016-05-21 11:27:54

标签: php arrays string oop

我有一个函数,它接受特定页面部分名称的字符串参数,可以是headbody

该功能如下所示:

private $html = [];

public function doStuff($pageSection, array $views)
{
    foreach ($views as $view) {
        //Do some other stuff with view

        $this->html[$pageSection] .= $view->renderOutput();
    }

    print_r($this->html);
}

来自renderOutput()的{​​{1}}函数返回一个字符串,并没有抛出任何错误。

尝试将此字符串添加到特定数组键($view)中的$this->html数组时,出现以下错误:

  

注意:未定义索引:正文中   第35行的C:\ file.php

在下一行($pageSection中,数组中填充了我想在右侧数组键print_r($this->html);中添加的所有字符串。

函数get的调用如下:

body

我试图删除连接运算符并只更改数组键中的字符串,这引发了同样的错误。

这是怎么回事?因为我已经在doStuff('body', array( //Array of views )); 部分添加了数组键。

另外,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

字符串

$this->html[$pageSection] .= 'some data';

表示您将'some data'连接到应该已存在的值。

如果您在'body'中没有密钥$this->html并尝试连接到它 - 您会看到通知

您可以尝试以下内容:

foreach ($views as $view) {
    //Do some other stuff with view

    // init value with empty string.
    if (!isset($this->html[$pageSection])) {
        $this->html[$pageSection] = '';  
    }

    $this->html[$pageSection] .= $view->renderOutput();
}