我可以使用变量访问对象的属性名称吗?

时间:2020-07-06 22:41:41

标签: php

假设我有以下...

$current_user->ID = 3;

我们还假设我有以下...

$read = $recipient->read_3;

请注意,$recipient->read_属性名称中的数字可以更改,因此我实际上并不知道有$recipient->read_3;。我想从3的值中获取名称(例如$current_user->ID),然后将其添加到$recipient->read_中以获取正确的属性名称。

我该怎么做?

我很想这样做... $read = $recipient->read_$current_user->ID;,但这不正确...正确吗?

3 个答案:

答案 0 :(得分:1)

您可以将其保存在变量中并使用。这是一个示例:

$object = new stdClass();
$object->read_3 = '3';
$id = 3;
$read = 'read_'.$id;
echo $object->$read;

输出:

3

答案 1 :(得分:0)

根据@ majed-badawi的回答,我提出了以下建议:

$num = "read_".$current_user->ID;

$read = $recipient->$num;

答案 2 :(得分:0)

您可以尝试使用 PHP变量变量。这些可以让您创建动态变量,因此您可以执行以下操作:

$propname = "read_".$current_user->ID;
$read = $recipient->{$propname};

您可以在此处找到有关变量变量的更多信息:PHP.net variable variables