我有一个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的列表及其属性
答案 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_third
,one_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'];
}
}