如何访问函数外部的变量

时间:2012-07-01 作者:sea_monster

我有一个自定义函数,它定义了一组变量。我希望能够从循环内部调用此函数,以便访问其所有变量,如下所示:

functions.php

function get_album_info() {
  $album_art = wp_get_attachment_image_src( get_sub_field(\'album_art\'), \'full\' );
  $album_date = get_field(\'album_date\');
  // ...10 more variables here
}

Template

<?php while (have_posts()) : the_post(); ?>

  <?php
  // Get all the variables here to use them below
  get_album_info(); ?>

  <img src="<?php echo $album_art; ?>">
  <p><?php echo $album_date; ?></p>

<?php endwhile; /* End loop */ ?>
我想在这里使用一个函数,因为我将在多个模板中使用它,不想多次定义这些。我知道我可以使用全局变量,但这需要在模板的顶部包含它们,这意味着在模板之间需要大量重复。我有哪些选择?

1 个回复
SO网友:Milo

您可以返回数据并设置局部变量:

function get_album_info() {
    $album = array(
        \'art\' => wp_get_attachment_image_src( get_sub_field(\'album_art\'), \'full\' ),
        \'date\' => get_field(\'album_date\')
    );
    return $album;
}

$album = get_album_info();
echo $album[\'art\'];
echo $album[\'date\'];

结束