我提出這個問題,因爲我有一個奇怪的數組轉換爲布爾值,我真的不知道這是什麼問題。奇怪的數組轉換爲布爾
我已經仔細檢查了我的代碼,並且沒有發現任何可以修改我的代碼的問題。
你看到有什麼問題嗎?如果是這樣,你能幫我嗎?
因此,根據要求,我將更詳細地解釋我的問題。
所以,我有這個類,我有一個方法叫load_configuration()
在加載一些PHP文件,返回每個值的數組。
這些文件返回的數組存儲在類中的等價屬性中。
裏面的load_configuration()
方法,我做了var_dump
,我的類屬性fields
和settings
,我得到以下結果:
array (size=1)
'text' =>
array (size=3)
'type' => string 'text' (length=4)
'label' => string 'Hello world! goes here.' (length=23)
'default' => string 'Hello world!' (length=12)
另外,我在方法load_configuration()
年底創建一個數組我返回數組。
然後,當我嘗試使用兩種方法屬性或返回值從方法load_configuration()
我得到var_dump()
// In case of the returned array
array (size=2)
'fields' => boolean true
'settings' => boolean true
// In case of the class property
boolean true
以下,但我看不到的原因。這是一個非常奇怪的修改。
爲了更好地理解看評論的方法load_configuration()
和get_template_variables()
class SS24_Widget extends \SiteOrigin_Widget {
protected $config_folder = 'Config';
protected $form_settings = 'settings';
protected $form_fields = 'fields';
protected $fields = array();
protected $settings = array();
public function __construct($unique_widget_id = '', $widget_name = '') {
if (empty($unique_widget_id)) {
$unique_widget_id = uniqid('widget-');
}
$this->load_configuration();
parent::__construct(
$unique_widget_id, // The unique id for your widget.
$widget_name, // The name of the widget for display purposes.
$this->settings, // The widget settings.
array(), // The $control_options array, which is passed through to WP_Widget.
$this->fields, // The widget fields.
$this->get_dir() . '/' // The $base_folder path string.
);
}
protected function load_configuration() {
$config_files = $this->get_dir() . '/' . $this->config_folder . '/*.php';
$fields = array();
$settings = array();
foreach (glob($config_files) as $file) {
switch(basename($file, '.php')) {
case $this->form_settings:
$this->settings = $this->{$this->form_settings} = require_once $file;
$settings = $this->settings;
break;
case $this->form_fields:
$this->fields = $this->{$this->form_fields} = require_once $file;
$fields = $this->fields;
break;
}
}
// This print out the following:
// array (size=1)
// 'text' =>
// array (size=3)
// 'type' => string 'text' (length=4)
// 'label' => string 'Hello world! goes here.' (length=23)
// 'default' => string 'Hello world!' (length=12)
var_dump($fields);
return array(
'fields' => $fields,
'settings' => $this->settings,
);
}
// ...
public function get_template_variables($instance, $args){
$c = $this->load_configuration();
// While the following printint out the following:
// array (size=2)
// 'fields' => boolean true
// 'settings' => boolean true
//
// boolean true
var_dump($c);
echo "<br />";
var_dump($this->fields);
return $variables;
}
}
能有人請解釋我什麼可能是不對的代碼?
更新#1 我發現,在我的本地代碼父類有一個受保護的成員屬性命名$fields
所以我現在改變變量成fields_settings
,但還是被轉換成boolean
。
是否有可能解釋你爲什麼downvote的原因? –
你的問題是什麼?我的意思是你爲什麼會問這個問題,你期望用這段代碼得到什麼,你會得到什麼?發佈一段代碼並詢問「您對此有何看法」很難回答。爲此,你可以使用PHP解釋器:) – Gavriel
你讀過我的代碼上面的評論嗎?你是否也查看了代碼?如果你仔細閱讀,那麼你會看到什麼是問題和問題。 –