PHP如何获取函数内部数组的内容

时间:2016-03-09 09:40:06

标签: php arrays foreach

我正在尝试更多地了解数组和foreach语句。

在一个文件中,我有以下类和函数:

class Onboarding_Dashboard {

static function dashboard_onboarding_content() {
    $items = array(
        'stage-1' => array(
            'title' => 'Hello',
            'content' => 'This is some content text',
            'show-next' => 'true',
            'show-prev' => 'true',
        ),
        'stage-2' => array(
            'title' => 'Hello',
            'content' => 'This is some content text',
            'show-next' => 'true',
            'show-prev' => 'true',
        )


    )
}    
}

在另一个文件中,我想使用此内容创建一个foreach语句。像这样:

static function action_get_content() {
    $items = Onboarding_Dashboard::dashboard_onboarding_content();
    foreach ($items as $item) {
        echo '<h2>'.$item['title'].'</h2>';
        echo '<p>'.$item['content'].'</p>';
    }

}

但是我不确定还需要添加什么才能从我的Class函数dashboard_onboarding_content中获取数据

更新:我已经更新了我的foreach语句,并将其包装在一个函数中。如何在我的代码中的另一点选择此函数的结果 - 它就像执行

一样简单
echo action_get_content();

2 个答案:

答案 0 :(得分:1)

已编辑回答OP的评论

当op询问如何创建另一个处理foreach然后可以回显的函数时,我添加了dashboard_foreach_example()函数。

class Onboarding_Dashboard {

    static function dashboard_onboarding_content(){
        $items = array(
            'stage-1' => array(
                'title' => 'Hello',
                'content' => 'This is some content text',
                'show-next' => 'true',
                'show-prev' => 'true',
            ),
            'stage-2' => array(
                'title' => 'Hello',
                'content' => 'This is some content text',
                'show-next' => 'true',
                'show-prev' => 'true',
            )
        );

        return $items;
    }    

    static function dashboard_foreach_example(){
        $items = self::dashboard_onboarding_content();
        $output = '';
        foreach ($items as $item) {
            $output .= '<h2>'.TITLE ATTRIBUTE.'</h2>';
            $output .= '<p>'.TITLE ATTRIBUTE.'</p>';
        }

        return $output;
    }
}

您现在可以简单地回显dashboard_foreach_example(),因为它将在函数

中生成输出
echo Onboarding_Dashboard::dashboard_foreach_example();

答案 1 :(得分:1)

更改您的函数以返回数组:

class Onboarding_Dashboard {
   static function dashboard_onboarding_content() {
      // your $items array stays here
      return $items;
   }
}

function action_get_content() {
   $html = '';
   foreach (Onboarding_Dashboard::dashboard_onboarding_content() as $item) {
      $html .= '<h2>'.$item['title'].'</h2>';
      $html .= '<p>'.$item['title'].'</p>';
   }
   return $html;
}

然后你这样输出:

echo action_get_content();

或者,您可以将此功能作为课程的一部分:

class Onboarding_Dashboard {
   static function dashboard_onboarding_content() {
      // your $items array stays here
      return $items;
   }

   static function action_get_content() {
      $html = '';
      foreach (self::dashboard_onboarding_content() as $item) {
         $html .= '<h2>'.$item['title'].'</h2>';
         $html .= '<p>'.$item['title'].'</p>';
      }
      return $html;
   }
}

然后你这样输出:

echo Onboarding_Dashboard::action_get_content();