$str=‘input_arr“用户名”’;
$input_arr=array();
$$str='abcd';
print_r($input_arr);
当我运行上面的代码时,它只打印Array()。
我希望它打印数组(username=>‘abcd’)
我做错了什么?
顺便说一下,这是用php 4编写的。
非常感谢。
编辑:我想要做什么?
$input_arr应该是一个静态变量来保存经过验证的用户名称,我最近才意识到php4.3不支持self::$input_arr,所以我不得不编辑我的脚本到bar($input_arr‘input.However’,$value);这样我就可以将值保存到bar()中的静态变量中;由于$input_arr‘’name‘不存在于当前作用域中,因此我必须将其设置为字符串。
发布于 2010-08-17 22:44:31
仍然很难知道您想要做什么,但是听起来您想让$str确定一段数据在$input_arr中的什么位置。如果是这样,您应该只将数组键存储在$str中,而不是代码的字符串表示形式。
在上一个示例中,只需设置$str = 'name',然后使用$input_arr[$str]访问$input['name']即可。在第一种情况下,您可以使用数组$keys = array(3,5)而不是$str,然后$input_arr[$keys[0]][$keys[1]]将等同于$input_arr[3][5]。
发布于 2010-08-17 23:16:59
如果你真的想这样,它可以使用2个变量。如果使用对数组的引用而不是变量变量,效果会更好。
$input_arr = Array();
function somefunction($array, $key)
{
${$array}[$key] = 'abcd';
}
function betterfunction(&$array, $key)
{
$array[$key] = 'abcd';
}
somefunction('input_arr', 'username');
betterfunction($input_arr, 'username');https://stackoverflow.com/questions/3502704
复制相似问题