0

データベースからオブジェクトに値を自動ロードする汎用phpクラスを作成しています

プロパティを設定するには、これを使用します:

$object->$propertyName = $valueFromDB;ここで、propertyName の値は mysql フィールド名から取得されます。

次に、同様の方法で何かを配列にプッシュしたいと思います。

これは動作します..

$object->$arryName = array();

しかし、これはそうではありません..

$object->$arryName[] = "test";

どうすればこれを回避できますか?

4

1 に答える 1

2
$object->{$arryName}[] = "test"

中かっこは操作の順序を変更し、PHP に中かっこの前に変数名を評価させます。

連想配列を実行したい場合、これはもう少し複雑になります。

$object->{$arryName}[$keyname] = "test"

この場合、$keyname を中かっこで囲むことができますが、これは完全にオプションです。

関連する注意事項..変数変数は通常、常にではありませんが、何か厄介な兆候です。また、デバッグ、リファクタリング、grepping などを行う必要があるあなたの後に来る人にとっては苦痛です。それらを使用する必要がある場合は、問題ありませんが、影響を考慮してください。

于 2013-02-13T19:47:22.713 に答える