問題タブ [variable-variables]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
7 に答える
986 参照

php - 可変変数経由の PHP $_GET/$_POST

変数変数を使用して、特に $_GET 配列と $_POST 配列の両方に動的にアクセスしようとしています。これを実行しようとしている理由は、複数の配列に対して、それぞれに対して特定の反復を宣言する必要なく、同様のアクションを実行できるようにするためです。PHPのドキュメントには、可変変数を使用して配列に動的にアクセスできると書かれているため、これが可能であると合理的に確信していますが、それを機能させることはできません。簡単なデモンストレーションは、特定のプロパティが設定されていることを確認しようとするときです。

上記のスクリプトを実行すると常に null になりますが、$_GET または $_POST を手動で使用して目的のプロパティを静的に検索すると、目的の結果が得られます。トリプルチェック$this->_arrayを行っ$propertyたところ、正しい文字列値が返されました。これらの配列はそのようなアクセスには使用できませんか、それとも何か間違っていますか?

0 投票する
4 に答える
130 参照

php - 変数変数 + フィールド内のオブジェクト

可変変数を使用して何かをしようとしていますが、オブジェクトの問題で行き詰まりました。このクラスの設定を想像してください:

これで、このコードが機能することは誰もが知っています。

この作品のようなものを作ることができる可能性はありますか?:

注: eval 関数を使用しないオプションはありますか?

0 投票する
2 に答える
268 参照

php - variable variable を使用してデータを static 変数に挿入すると PHP エラーが発生する

私はこれがあまり得意ではないので、これはばかげた質問だと確信しています。

私はクラスを持っています:

デバッグするために別のクラスからこれを呼び出しています (サプライズ)。

error.log からの PHP エラー メッセージ:

PHP 致命的なエラー: 行 1248 の /var/www/lib/lib.php の読み取りに [] を使用できません

これは、デバッグ クラスの上記の行を参照します。

編集:

私がやろうとしているのは、可変変数 (したがって投稿タイトル) を使用して、データを追加する静的配列を決定することです。

つまり、$type == 'messages' の場合、$$type == $messages となります。

だから私は self::$$type[] == self::$messages[] が欲しい

または、$type == 'errors' の場合、$$type == $errors および self::$$type[] == self::$errors[]

0 投票する
2 に答える
100 参照

php - 変数変数、私の配列への鍵

次のような例を示す例をここで見つけました。

次のように変更することは可能ですか?

$row 配列は mysql クエリから取得されます。

0 投票する
4 に答える
1808 参照

php - 文字列内の変数を解析する

ファイル内にいくつかの文字列を保存してい*.propertiesます。文字列の例は次のとおりです。

sentFrom= {$oEmails->agentName}から {$oEmails->customerCount} 人にメールを送信しています。

私の関数はから値を取得しsendingFrom、その文字列をページに出力しますが、内部を自動的に解析しません{$oEmails->agentName}。手動で解析せずに、PHP で変数を文字列から本来あるべきものに変換する方法はありますか?

0 投票する
2 に答える
5688 参照

php - $ obj->$propNameとして配列にアクセスできる配列要素への参照を取得する

このコードがあるとします(簡略化された例):

この時点で、配列内の値への参照を評価する式を記述したいと思います。

これを行うことは可能ですか?もしそうなら、どのように?

「仕事をする」が、私が探しているものではない答えはこれです:

しかし、なぜそれを2つのステートメントとして書くのでしょうか。まあ、これはうまくいかないので:

もちろん&$foo->items[0]、プロパティ名を修正するため、別の受け入れられない解決策です。

誰かが奇妙な要件について疑問に思っている場合:私はループ内でこれを行っています。ループ内では、$fooそれ自体がグラフ内のノードへの参照です。次の反復で設定してもグラフが完全に台無しにならないように、関連するソリューションには後で$temp必要になります。参照に細心の注意を払わないと、この要件を見落とす可能性があるため、バグを引き起こす可能性が少なくなるようにこのコードを記述する方法があるかどうか疑問に思いました。unset($temp)$tempunset

0 投票する
1 に答える
130 参照

php - 必須/インクルードファイルからのPHPの変数変数

私はMVCフレームワークを作成しています(実際に使用することを意図するのではなく、学習と発見を目的としています)が、わずかな問題に遭遇しました。

私はconfig.phpファイルを持っています:

bootクラスの静的メソッドを介してこれらをロードします。

次に、次のようにルートをロードします。

これは例外をキャッチします:

config.php今、私がそのようにファイルを作成すればそれはうまくいきます

次のようにメソッドの2行を変更します。

同じ問題の$$type代わりに使ってみました。${$type}

私が見落としているものはありますか?

0 投票する
2 に答える
2805 参照

php - 変数変数としてインデックスを持つ配列値を使用する

タイトルは少しわかりにくいかもしれません。これは私の問題です:

変数名を別の変数に保持してから、最初の変数の内容を読み取ることができることは知っています。これは私が意味するものです:

「こんにちは」と表示されます。今、私はこれに問題があります:

これにより、PHP エラーが発生します ($somearray['name'] は未定義の変数であると表示されます)。これが可能かどうか教えてください。私は何か間違ったことをしています。または、これが明らかに不可能な場合は、同様のことを行う別の解決策を教えてもらえますか?

前もって感謝します。

0 投票する
1 に答える
805 参照

python - 評価なしのPython変数変数?

Pythonで変数文字列を使用して変数にアクセスする方法はありますか? たとえばeval、次のように使用するよりもきちんとした方法が必要です。

0 投票する
2 に答える
2241 参照

php - 変数とスーパーグローバル

私は巨大なPHPソフトウェアをPHP4からPHP5に移行していますが、私が直面している多くの(多くの)問題の中で、これまでの最大の問題は、前のプログラマーがregister_globals機能をめちゃくちゃにして、時々投げたということのようです。ソースを指定せずに変数を変更し、カーペットの下に警告と通知を恥ずかしそうに隠します。

配列を反復処理し(引数として渡される)、「変数変数」機能を介してグローバル変数を作成する関数を作成し、それをすべてのページで、、およびの呼び出しを行うことで、この問題を解決しようとし$_POSTまし$_GET$_SESSION。これはコードです:

この関数の問題は、条件isset($$key)が真になることはないため、角かっこ内のコードは常に実行され、前の宣言をオーバーライドすることです。

この振る舞いについて何か説明はありますか?PHPのドキュメントを読みました。

変数変数は、関数またはクラスメソッド内のPHPのスーパーグローバル配列では使用できないことに注意してください。

しかし、それが私の問題に関連しているかどうかはわかりません(実を言うと、それが何を意味するのかわかりません。例が見つかりませんでした)。

PS:どうか、グローバル変数や変数変数を使用するのは悪いプログラミングだとわざわざ言わないでください。これは私自身ではあまりにもよく知っていますが、他のオプションは、各行に1,000行のコードで約2.700ファイルを変更することです。行ごとに、そして私はここで唯一のプログラマーです...しかし、これらの「未定義の変数」の警告をすべて取り除くためのより良い解決策を知っているなら、あなたは私の一日を作ることができます。

PPS:そして私の英語にも我慢してください^ _ ^