这看起来很简单,但我无法在任何地方找到解决方案。
我想要做的是将变量的内容(r值)添加到关联数组而不是引用到变量。
例如,我想要这个:
$myStr1 = "sometext";
$myStr2 = "someothertext";
$myArray = array(
"key1"=>$myStr1,
"key2"=>$myStr2
);
echo($myArray["key1"]);
产生这个:
"sometext"
而不是:
"1" // why??
任何帮助都将不胜感激。
修改
以上作品;我的错。这是真正的问题 - 我的$myStr1
变量不仅仅是像上面那样的字符串文字;它是使用以下语法创建的:
$myStr1 = "sometext" + anObject->intProperty + "moretext";
基本上我使用+
将各种类型连接成一个字符串。也许+
没有做我认为它正在做的事情?
修改
绝对是+
运营商。我将所有非字符串转换为字符串,并使用.
来连接。
答案 0 :(得分:1)
你第一次弄错了。 Try this:
$myStr1 = "sometext";
$myStr2 = "someothertext";
$myArray = array(
"key1"=>$myStr1,
"key2"=>$myStr2
);
unset($myStr1);
echo($myArray["key1"]);
即使我们unset()
$myStr1
变量,它仍然会回显sometext
。
应该注意的是,尽管可以设置$myStr1
by reference,但这不是默认设置。
答案 1 :(得分:0)
尝试使用您的代码,结果如下:
sometext