2

関数に渡された変数を使用してオブジェクト値を取得しようとしています。これが私がやろうとしていることの簡単な例です:

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]

Avar_dumpは、プロパティがあることを示しています。

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

更新:これは警告のスクリーンショットです。日付は機能していることがわかりますが、警告は引き続き表示されます。53行目は my $object->$date_name.

4

2 に答える 2

0

構文は正しいですが、 $project はオブジェクトではありません。$project をどのように初期化しますか?

于 2013-09-17T20:32:23.647 に答える
0

たぶん、変数を型キャストする必要があるかもしれません.C#で知っている他の言語のように、変数を定義する必要があります.

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

多分phpに似たようなものがあります。

また、プロパティが存在することを確認してください。私がphpで経験したことは、その場で変数を作成できることです。これは良いことでも悪いことでもあります

私が正しく覚えていれば、「var」と「var」にも違いがあります

于 2013-09-17T20:44:36.247 に答える