从php文件中的所有数组var中获取值

时间:2013-12-28 18:58:32

标签: php arrays var

我有一个php文件(shortcode-config.php),我在其中声明了一些var数组。

我想为这个文件中的每个var获取每个数组中的一些值。

shortcode-config.php:

$theme_shortcodes['one_half'] = array( 
    'no_preview' => true,
    'title'=>__('One Half (1/2)', 'textdomain' ), 
    'shortcode' => '[theme_one_half boxed="{{boxed}}" centered_text="{{centered_text}}" last_column="{{last_column}}"] {{content}} [/themeone_one_half]',
    'popup_title' => __('One Half (1/2) column', 'textdomain'),
    'shortcode_icon' => __('fa-list')
);

$theme_shortcodes['one_third'] = array( 
    'no_preview' => true,
    'title'=>__('One third (1/3)', 'textdomain' ), 
    'shortcode' => '[theme_one_third boxed="{{boxed}}" centered_text="{{centered_text}}" last_column="{{last_column}}"] {{content}} [/themeone_one_half]',
    'popup_title' => __('One third (1/3) column', 'textdomain'),
    'shortcode_icon' => __('fa-list')
);

在我的其他php文件中,我得到var,但是目前我在$popup中定义的唯一一个(我不知道如何在不知道$theme_shortcodes['']中的name var的情况下在文件内循环) :

    <?php
    class theme_sc_data {

    var $conf;
    var $popup;
    var $shortcode;
    var $popup_title;
    var $has_child;

    function __construct( $popup ) {
        $this->conf = dirname(__FILE__) . '/shortcodes-config.php';
        $this->popup = $popup;
        $this->formate_shortcode();
    }
    function formate_shortcode() {
        require_once( $this->conf );
        $this->shortcode = $theme_shortcodes[$this->popup]['shortcode'];
        $this->popup_title = $theme_shortcodes[$this->popup]['popup_title'];
        $this->shortcode_icon = $theme_shortcodes[$this->popup]['shortcode_icon'];
    }
}
$popup = 'one_half';
$shortcode = new theme_sc_data($popup);
?>

我希望从shortcode-config.php为每个var输出这样的内容:

<span><i class="fa <?php echo $theme_shortcodes[$this->popup]['shortcode_icon']; ?>"></i><?php echo $theme_shortcodes[$this->popup]['popup_title']; ?></span>

我想这样做是为了自动填充所有这些var的列表及其属性

1 个答案:

答案 0 :(得分:1)

试试这个:

require_once( dirname(__FILE__) . '/shortcodes-config.php');
$shortcode = array();
if(!empty($theme_shortcodes)){
   foreach($theme_shortcodes as $key=>$val){
         $shortcode[] = new theme_sc_data($key,$val); 
   }
}

这里$ key将是one_thirdone_half等等。$ val将保存数组。现在$shortcode将是一个对象数组。我认为$key在你的类函数中没有重要性,但如果你需要任何使用它仍然会被传递。

并改变你的课程,以避免再次包括

class theme_sc_data {

    var $conf;
    var $key;
    var $shortcode_icon;
    var $popup_title;
    var $has_child;

    function __construct( $key,$val ) {
        $this->conf = dirname(__FILE__) . '/shortcodes-config.php';
        $this->key = $key; // actually of no use now, but may be in future
        $this->formate_shortcode($val);
    }
    function formate_shortcode($val) {
        $this->shortcode = $val['shortcode'];
        $this->popup_title = $val['popup_title'];
        $this->shortcode_icon = $val['shortcode_icon'];
    }
}