在PHP中使用变量获取对象属性

时间:2013-09-17 20:30:56

标签: php

我正在尝试使用传递给函数的变量来获取对象值。这是我想要做的一个简单的例子:

function get_date($object, $date_name)
{
    // this should execute like "$project->date_of_project"
    return formatted_date($object->$date_name);
}

echo get_date($project, 'date_of_project');

我收到此警告(但日期确实显示):

Trying to get property of non-object

我在几个地方读过以下尝试(但它不起作用):

$object->{$date_name}[0]

var_dump显示该属性在那里:

object(stdClass)#33 (1) {
    ["date_of_project"]=>
    string(19) "2013-04-25 00:00:00"
}

更新:这是警告的screenshot。您可以看到日期有效,但警告仍然存在。第53行是我$object->$date_name的行。

2 个答案:

答案 0 :(得分:0)

您的语法正确,但$ project不是对象。你如何初始化$ project?

答案 1 :(得分:0)

也许你需要像我在c#中知道的其他语言一样输入变量,我必须定义变量,它可以像

function get_date(Project $ object,DateTime date)
{....}

也许在php中有类似的东西。

还要确保属性存在,我有经验的PHP是你可以动态创建变量这可能是件好事还是坏事

如果我没记错的话,“var”和“var”也有区别