【发布时间】:2016-03-10 21:27:56
【问题描述】:
我正在使用以下代码动态声明变量:
$fields = array('name1', 'name2');
foreach($fields as $field) {
$$field = false;
}
问题是变量名重叠,因为我使用了多个数组。
问题是:如何使用前面的方法在变量名后面附加一个字母?
例如,如果我们将字母 F 附加到前面的示例中,那么我们将得到 $Fname1, $Fname2。
我试图做 $F$field 但这不起作用,我也尝试在循环内设置 $field = "F"+$field 但是也没用。
【问题讨论】:
-
如果你在这方面没有遇到任何问题,那么也许 PHP 会告诉你这不是你想要做的任何事情的最佳方式......也许解释一下你'正在努力实现,我们也许可以向您展示一种更好的替代方法....甚至可能像
$fieldSet = array_fill_keys($fields, false);...这样简单。但是如果您有重复的变量名,那么您肯定会接近这个错误的方式 -
我同意 Mark 的观点 - 在 IMO 中,您需要使用可变变量的情况并不多。通常只使用关联数组就可以解决问题,但可以让您避免发生此类问题。
-
数组用于动态设置变量名、构建表单字段、sql查询。到目前为止唯一的问题是字段名称重叠的情况(使用多个表时)
-
要连接字符串,请使用句点“.”,而不是加号“+”。
-
@C.Liddell 我不敢相信我忽略了这一点......谢谢。