【发布时间】:2018-02-24 18:46:18
【问题描述】:
我正在尝试使用我编写的类方法设置 HTML name 和 id 属性的值。这个想法是name 属性的值最终是这样的:name="key[field_name]"。
如果我硬编码key 使其成为name="key[' . $field_name . ']",我就有这个工作,但是这违背了让班级完成所有繁重工作的目的,因为这是针对 WordPress 自定义帖子类型的。
因此,我创建了一个类参数post_type_key,它将包含该值。但是当我去合并它们时,它不起作用,我得到一个name="k"。
我看了看,唯一能快速找到的解决方案是使用eval(),我绝对不想这样做。
以下是相关代码:
$post_key = $this->post_type_key;
if ( $field_type == 'text' ) {
$meta_field .= '<input type="' . $field_type . '" name="'.
$post_key[$field_id_name ] . '" id="' . $field_id_name .
'" value="' . $meta[$field_id_name][0] . '" />';
}
【问题讨论】:
-
$this->post_type_key的值是多少(最好使用var_dump)?$field_id_name的值是多少(相同)? -
@Jeto 分别以
string(3) "key"和string(10) "first_name"回归。 -
因此
$post_key(您从$this->post_type_key分配)不是一个数组,而是一个字符串。所以$post_key[$field_id_name]没有多大意义(它返回字符串“key”的第一个字符,因为$field_id_name被评估为0)。 -
但是有没有办法使用
$post_key的值作为名称来创建一个数组? -
如果我理解正确的话,这很简单。在 post_key 前加上两个美元符号:
$$post_key[$field_id_name].