【问题标题】:PHP - Adding string value to associative arrayPHP - 将字符串值添加到关联数组
【发布时间】:2012-07-18 04:08:14
【问题描述】:

这看起来很简单,但我在任何地方都找不到解决方案。

我想要做的是将变量的 contents(r 值)添加到关联数组,而不是对变量的 reference

例如,我想要这个:

$myStr1 = "sometext";
$myStr2 = "someothertext";

$myArray = array(
    "key1"=>$myStr1,
    "key2"=>$myStr2
);

echo($myArray["key1"]);

制作这个:

"sometext"

而不是这个:

"1"        // why??

任何帮助将不胜感激。

编辑:

以上作品;我的错。这是 real 问题 - 我的 $myStr1 变量不只是像上面那样分配一个字符串文字;它是使用以下语法创建的:

$myStr1 = "sometext" + anObject->intProperty + "moretext";

基本上我使用+ 将各种类型连接成一个字符串。也许+ 没有做我认为它正在做的事情?

编辑:

绝对是+ 运算符。我将所有非字符串转换为字符串,并改用. 连接。

【问题讨论】:

  • ideone.com/ywwma --- 您的代码按预期工作
  • 废话。好吧,我想我有一些调查工作要做。感谢您指出这一点。
  • 你使用的是什么 PHP 版本?
  • @ShaquinTrifonoff 我正在使用 5.4.3。
  • 为了记录,PHP 中的 + 运算符只执行加法,如果您将它与字符串一起使用,它只会尝试将字符串转换为值 (1) 并添加它们。 (以防万一还不清楚)

标签: php arrays string variables associative-array


【解决方案1】:

试试你的代码,结果是:

sometext

【讨论】:

  • 尽管这可能被视为一个答案,但我个人仍然认为将其作为评论留下会更合适
【解决方案2】:

您第一次就正确了。 Try this:

$myStr1 = "sometext";
$myStr2 = "someothertext";

$myArray = array(
    "key1"=>$myStr1,
    "key2"=>$myStr2
);

unset($myStr1);

echo($myArray["key1"]);

即使我们unset() $myStr1 变量,它仍然回显sometext

需要注意的是,虽然可以设置$myStr1 by reference,但不是默认设置。

【讨论】:

  • 你的答案和另一个一样,加上评论。
  • &"sometext"; - 这不是有效的 php。只有变量可以通过引用传递
  • @ShaquinTrifonoff 换句话说,我提供了一个实际的答案,而不是答案形式的评论?
  • @zerkms 指出,谢谢。瞬间脑残。现在已经修好了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-03
  • 2023-03-14
  • 1970-01-01
  • 2015-11-12
  • 1970-01-01
  • 1970-01-01
  • 2013-07-10
相关资源
最近更新 更多