問題タブ [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 投票する
2 に答える
1227 参照

php - 変数変数のドル記号は、間接参照演算子と見なされますか?

私は誰かにPHPで変数変数変数を作成する方法を示していました(私は決してそれらを使用することをお勧めしません、それは恐ろしい習慣であり、実際の製品コードで変数変数変数を使用する場合は悪い人です)、そして彼らはドルかどうか尋ねましたこの場合、記号は間接参照演算子として機能しました。

それは実際には他の変数への参照を作成しないので、私はそれがderefopであるとは実際には見ていません。変数変数のドキュメントには、参照についてもまったく触れられていません。

誰が正しいの?変数変数が参照を作成しているとは思わないため、ドル記号は間接参照演算子ではありません。

これがあなたの見る喜び(または内容を与えられた苦痛)のためのいくつかのサンプルコードです:

0 投票する
3 に答える
97 参照

php - 変数変数、関数、クラス

私は最近、PHPで変数変数を発見しました。言うまでもなく、その有用性は計り知れません。

それは私に考えさせました、それは私の質問に私たちをもたらします:

可変の名前を持つことができるので、可変の関数も持つことはできませんか?関数の名前のように「関数」ではなく、(多かれ少なかれ)次のようになります。

または、さらに良いことに、変数クラス:

これは可能ですか?

0 投票する
3 に答える
1683 参照

php - PHP: 変数変数を介してセッション変数を設定する

次のようなセッション変数を設定したいと思います。

これは実際に に$_SESSION['element']等しく設定されますvalueが、残りの$_SESSION変数もクリアされているようで$_SESSION、新しいキーと値のペアのみを含む配列になります。

nuking せずに変数変数を使用してセッションに書き込むにはどうすればよいですか?

編集:これができない場合は、おそらく再構築して「正しい」方法で行う必要があります。簡単に直せる方法があれば知りたいです

0 投票する
3 に答える
5554 参照

php - 変数 variable から定義された定数を呼び出す

別の関数で定義済みの定数を参照しようとしています。私が得ているエラーは、定義されていない変数と、各 FOO および BAR の定数として定義された変数を参照しています。

0 投票する
3 に答える
1226 参照

php - PHPで可変変数を使用するのは悪い習慣ですか?

たとえば、単純な MVC タイプ システム:

/api/class/methodを使用して PHP 変数に書き直して.htaccess/nginx.confから、次のようにします。

これはひどく悪い習慣ですか?それが悪い習慣である場合、誰かがその理由を正確に説明できますか? もしそうなら、私がしていることを行うためのより良い方法はありますか?

編集基本的に、私が可変変数を使用している理由は、コアシステムを簡単に拡張できるようにするためです。つまり、新しいコントローラーを追加するのは素晴らしく簡単です。私は、本質的にあらゆる関数やクラスを何らかのフィルターなしでインスタンス化できるようにすることのセキュリティ リスクを明確に理解しています。

「some_filter_here」は、許可されているコントローラーのリストである可能性があります-ここで言及したホワイトリスト。

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

php - 単純なPHP関数で変数変数を使用する

先日、この膨大な配列のセットが与えられ、たくさんのボタンまたは選択/ラジオボタンを使用してHTMLページを作成するように指示されたので、物事を単純化するための簡単な関数をいくつか作成しました。

これは、非常に大きなHTML選択を生成するための私の関数です。

これはうまくいかないようです。なぜなら、${$name}単に何も呼び出さない/私が期待するように機能するからです。関数呼び出しを介して配列を渡すだけの回避策はすでにありますが、このコードの変数変数で間違っていたことを悩ませています。

編集:いくつかのコンテキストを与えるために、これは設定を入力するための巨大なUIを構築するためにjoomlaビューにロードされています。この関数はlibファイルにあり、require_once使用するすべての配列を含む別のファイルと一緒にロードされます。データベースはこれらの設定の現在の値のみを保持し、配列にはさまざまな選択/ラジオ/ドロップダウンメニューのすべての可能なオプションが含まれており、言語/翻訳の理由から別のファイルに一元化されています。

人々が尋ねたいくつかの質問を明確$nameにするために、使用された配列の名前とHTML select / radio/checkbox入力の名前が含まれているだけです。$evalThisデータベースが現在持っている値を含む配列です。

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

javascript - JavaScript の可変変数

私の知る限り、この機能はすでに PHP に存在します。次の php コードを見てみましょう。

機能の説明:

可変変数名を持つことができると便利な場合があります。つまり、動的に設定して使用できる変数名です。可変変数は、変数の値を取り、それを変数の名前として扱います。上記の例では、変数の名前としてredを使用できます。この時点で、2 つの変数が定義され、PHP シンボル ツリーに格納されています: $colorwith contents"red"$redwith contents "dark"

私の質問

これはJavaスクリプトで行うことができますか?

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

php - OO PHPはすべてのプライベート変数をページ上の変数として返します

多くのプライベート変数を持つ次のクラスがあります。

フォーム フィールドに事前入力できるように、すべての属性を変数として値とともに返したいと考えています。すべての属性を満たすデータベース クエリがあります (テストで証明されているように機能します)。OO の前に、データベースから情報を取得し、それを変数に入れ、compress() を使用して送信し、extract() を使用してすべての変数を取得しました。これは、私のクラスの returnAttributes() メソッドのように機能しますか?

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

php - 可変グローバル変数?

次のように、グローバル変数の配列で入力を自動的にサニタイズしようとしています。

しかし、私は次のようになります:(Notice: Undefined variable: _REQUEST私が試しているすべてのグローバル変数についても同様です)

私が達成しようとしていることは実際に可能ですか?

ありがとう。

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

php - 変数変数を使用した予期しない動作

関数に処理させたいスーパーグローバル配列の名前を含む変数を渡そうとしましたが、それを機能させることができませんでした。問題の変数が存在しないと主張し、nullを返します。

テストケースを次のコードに簡略化しました。

関数の外にあるvar_dumpは、期待どおりに$_SERVERの内容を返します。ただし、関数のvar_dumpは、上記のエラーをトリガーします。

関数に追加global $_SERVERしてもエラーは解消されませんでしたが、$ _ SERVERを別の変数に割り当て、その変数をグローバルにすることは機能しました(以下を参照)。

これはPHPのバグですか、それとも私は何か間違ったことをしているだけですか?