我有许多几乎完全相同的代码行,其中唯一不同的部分是变量名称的字母和数字以及相关的get_user_meta键。我想以更有效的方式动态创建变量。 (该模式将持续到Q25G。)
$Q1A = get_user_meta( $user_id, 'key_Q1A', true );
$Q1B = get_user_meta( $user_id, 'key_Q1B', true );
$Q1C = get_user_meta( $user_id, 'key_Q1C', true );
$Q1D = get_user_meta( $user_id, 'key_Q1D', true );
$Q1E = get_user_meta( $user_id, 'key_Q1E', true );
$Q1F = get_user_meta( $user_id, 'key_Q1F', true );
$Q1G = get_user_meta( $user_id, 'key_Q1G', true );
$Q2A = get_user_meta( $user_id, 'key_Q2A', true );
$Q2B = get_user_meta( $user_id, 'key_Q2B', true );
$Q2C = get_user_meta( $user_id, 'key_Q2C', true );
$Q2D = get_user_meta( $user_id, 'key_Q2D', true );
$Q2E = get_user_meta( $user_id, 'key_Q2E', true );
$Q2F = get_user_meta( $user_id, 'key_Q2F', true );
$Q2G = get_user_meta( $user_id, 'key_Q2G', true );
如何动态设置这些变量,或以其他方式简化这种怪物?
答案 0 :(得分:1)
最好使用数组
$Q = [];
$keys = ["1A", "1B", "1C", "2A"]; // as many as you need
foreach($keys as $key) {
$Q[$key] = get_user_meta( $user_id, "key_Q$key", true );
}
有关您的用例的更多信息,我们可能会想出一种更优雅的方法来实现这一目标。
答案 1 :(得分:0)
你应该使用shalvah指出的关联数组。但是,在PHP中可以生成变量变量名。
在PHP中,您可以执行以下操作:
$index = 'Q1A';
$$index = get_user_meta($user_id, 'key_' . $index, true);
您可以将此代码放在while
循环中,例如更改$index
并查看所有选项。
但实际上,请使用关联数组。