【问题标题】:Getting object variable using string + variable使用字符串+变量获取对象变量
【发布时间】:2012-01-29 06:17:47
【问题描述】:

我想做这样的事情: echo $myObject->value_$id 但我不知道正确的语法,我不确定是否可能。

$id是一些PHP变量,例如值为1。最后,我想得到$myObject->value_1,但数字部分(1)应该是动态的。

【问题讨论】:

  • 我很好奇如何使用->来做到这一点
  • $myObject->myArray["element"];$myObject->myArray[$id];。我认为无论如何使用数组是一种更好的方法。但是,你到底想做什么?
  • 啊,好的,现在我明白你说的“数组的东西”了

标签: php variables syntax


【解决方案1】:
$name = "value_" . $id;
echo $myObject->$name;

【讨论】:

  • 我不能以某种方式在第二行加入变量和字符串吗?
【解决方案2】:

这行得通:

$variableName = 'value_whatever_1337';
echo $myObject->$variableName;

【讨论】:

  • 我不能在第二行加入变量和字符串吗?
  • 你可以,但如果你想让你的代码清晰易读,这不是推荐的方式!
【解决方案3】:

该功能被称为variable properties

<?php

$myObject = (object)NULL;
$myObject->value_1 = 'I am value nr 1';

$id = 1;
echo $myObject->{"value_$id"};

【讨论】:

  • 在将 NULL 转换为对象之前我从未见过 ^^ 有趣的想法 ;-)
  • @Armin - 在 StackOverflow 上闲逛一会儿,你会看到更奇怪的东西 :)
  • 写 PHP 已经有一段时间了,以前没见过。我想你每天都会学到新东西。非常感谢您提供这些知识。 :)
猜你喜欢
  • 1970-01-01
  • 2021-03-03
  • 1970-01-01
  • 2017-11-16
  • 1970-01-01
  • 2018-01-24
  • 2019-01-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多