私は、2つの異なるデータオブジェクトにアクセスするPHPスクリプトを作成しています.1つはDBで、もう1つはセッションデータです。それらは両方とも同じフィールドを含みます。つまり、セッションオブジェクト内のデータは、一度検証されるとDBに入ります。名前を知らずにオブジェクトプロパティにアクセスしていますか?
私は、dbバックアップされたオブジェクトの値を最初にチェックし、次にセッションデータをバックアップしたオブジェクトで値をチェックする関数を記述しようとしています。しかし、私が期待しているのと同じように動作しません。ここに私が持っているものがあります。
<?php
function check_cache($field){
// $App is the DB backed object, $data is the session object
return $app->$field ? $app->$field : $data->$field ? $data->$field : '';
}
?>
私はこのような機能を呼び出すことができるようにしたい:
<input type="text" value="<?php echo check_cache('address'); ?>" />
...しかし、関数は常に何も返しません。私が望むフィールド名に$field
を代入して、実際のインラインコードで関数呼び出しを置き換えると、動作します。私は何が欠けていますか?
注意をこれが意味することを '$$自身がどのような値' $ field'であるため、関数のスコープ内に存在している必要がありますfield'。 – BoltClock
+1。 –
@Jack Murdoch:つまり、あなたは '$ app - > $ {$ field}'ではなく、 '$ app - > $ field'を必要とします。可変変数の場合 –