2017-12-04 7 views
-2

変数または配列要素にバイナリ値を格納して、オプションが有効または無効であることを示す必要があります。どちらが効率的ですか:ブール値かバイナリ整数か。

「はい」または「いいえ」を使用すると1または0(または空)よりも効率が悪いと思われますが、1/0とTRUE/FALSEの差があるかどうか、パフォーマンスやメモリの使用量、他に何か。

$option = 1; # if the option is enabled 
$option = 0; # if the option is disabled OR 
$option = ""; # if the option is disabled 

$option = TRUE; # if the option is enabled 
$option = FALSE; # if the option is disabled 

方法間

をお勧めしますか?どうして?

ありがとうございました。

+3

自分でベンチマークを実行しましたか? –

+1

実際的な違いはありません。想像を絶する理由の1/0がより良い場合、確かに、PHPは内部的に整数としてブール値を扱うことによって、自明に最適化します。 – JJJ

+2

バイナリ値を格納するために、 "yes"や "no"や "true"や "false"のような文字列を使用しないでください。ブール値の文脈で正しく評価される形式を常に使用してください。例えば、 '(string)" false "'は真ですから、あなたはそれを使いたくありません。 –

答えて

1

「その他のもの」カテゴリにあります。 optionは、Yes/No/True/False/On/Offのブール型で0/1からのブール型であるかどうかを即座に理解します。数値型のオプションも可能です。この問題は、ブールオプションでありIntegerオプションではないことを示す_boolのような接尾辞付きのオプションの名前を付けることで解決できます。これは、コードとオプションの設定ファイルの両方で表示され、明白です。

+0

ありがとう、感謝します。 – msoutopico

関連する問題