メールを送信する際のユーザー設定を保存したいと思います。これを達成するために、私は自分のシステムのメーリングクラスのクラス定数を利用し、その定数を配列のキー値として使用するつもりでした。しかし何らかの理由でキーが数値インデックスに変換され、ランタイムでのクラス定数とのマッチングはもはや機能しません。 http://pastie.org/2541980なぜ配列のデフォルトキーとしてのクラス定数はphpの数値キーに変わるのですか?
答えて
なぜあなたは、このようにそれをやっている:私は代わりに、単一の文字列を使用する場合は、そのは
これは、与えられた出力を持つクラスの例は..です期待通りに働いて?定数はフラグに似ているようです - それらを処理するより効率的な方法は、理想的にはバイナリ演算子を使用して数値にマップすることです。そうすれば、該当するすべてのフラグを「オン」にすることができます。その結果、格納が簡単になり、簡単に渡すことができます。このうち
チェック:http://life-of-brian.com/2008/04/binary-code-bitwise-operators-php/
基本的に私が文字列を使用している唯一の理由は、手動でデータベースに移動するときに読みやすくすることです(これはmongodbのmctodbで、ここではmongodbです) - だからこそlazyness ..しかし、定数の値をバイナリ値にする方法は? – con
非常に簡単! 1、2、4、8、16などのように、1ビット(2の累乗)に格納されている数値を取るだけです。たとえば、フラグbとcをアクティブにすると、ビット列01100が返されます。実際には保存/処理が簡単ですが、慣れていなければなりません。 – Rijk
これはあなたが意味するものではないと思いますが、基本的には動作します:http://pastie.org/2541980 - あなたのリンクから、userSettingsは、バイナリから構築された1つのバイナリ変数に格納されます。それはmongodbにバイナリ値を格納することさえ可能ですか?(doctrine?) – con
- 1. 配列変数のキー/値PHP
- 2. Rで数値として指定したデータフレーム列が文字に変わるのはなぜですか?
- 3. 変数を配列のキーとして定義します。
- 4. 子クラスの親変数を定数値でオーバーライドできないのはなぜですか? (PHP)
- 5. PHP - 別の配列の値から配列内の変数を設定する
- 6. PHP複数配列 - オブジェクトを使用して配列キーの値をエコーする
- 7. 配列キー(数値)を特定の配列(数値)に並べ替えます。
- 8. PHP、OOP:私のクラスの配列プロパティは、プロパティとメソッドをクラス外の配列のような値として使用できないのはなぜですか?
- 9. 配列変数としてPHPの関数curl_init()変数
- 10. PHP:別のキー値配列の値でキー値配列をソート
- 11. 配列の値として$ _POST変数
- 12. 配列キー数値を別の値に変更する方法
- 13. キーが変数(PHP)と一致すると配列値を出力します
- 14. PHPの配列要素を匿名関数として定義できないのはなぜですか?
- 15. Javascript:キーと値のペアとしての関数と配列
- 16. この配列がPHPクラスの配列として認識されないのはなぜですか?
- 17. PHP - キーの代わりにインデックスで配列の値を取得
- 18. 関数から配列に引数としてランダムな値を渡すのはなぜですか?
- 19. 私の$設定配列の変数がその値を保持しないのはなぜですか?
- 20. Doctrine/MongoDB:数値配列の代わりにキーと値のペアを使用
- 21. 変数に変数を代入すると値が変わるのはなぜですか?
- 22. JQuery forループと配列 - なぜこの変数は未定義ですか?
- 23. PHP関数引数:特定のクラスのオブジェクトの配列
- 24. 値をキーに、カウントを値として別の配列の値の数を持つ配列を作成する
- 25. キー/値ペアのJavaScript配列は、キーのリテラル変数名を使用します
- 26. 数秒ごとにhtmlの配列の値からクラスを変更します
- 27. 配列値をPHPのjavascript関数クロージャとして設定する方法は?
- 28. PHP - クラス定数はメモリのグローバル定数と異なるのですか?
- 29. なぜクラスの定数値が変更されるのですか?
- 30. PHPが配列の数値キーを修正する
あなたは、コードの他の部分は、この '$ sendEmail'属性に干渉しないことを確認していますか?あなたのコードを実行しました( 'use'や' extends'文なしで)、私はあなたのバグを再現できません。あなたのサンプルでは、5つの文字列キーを設定し、6つの数値キーを取得するので、単なる変換ではありません。私は干渉しているあなたのコードの別の部分があると思います。属性名を変更しようとしましたか? –
私のコードは実際にははるかに長い定数で少し長くなっていますが、私はこの例をきれいに保ち、2番目のvar_dump()の6番目の数値出力を監督していました。ごめんなさい。私はペーストを更新しました – con