0

私の数値を明示的にphpにtinyint(4ではなく1バイト)として保存する方法はありますか。

または、4 x 4 を int に格納することによってのみ、これを強制できますか? (いくつかの二項演算を使用)

これらの値は、str_split を使用して文字列を分割し、これらのバイトを unpack( 'C' , .. ) を介して int として解釈することによって生成します。現在、これらの値を個々の整数として配列に保存していますが、どうにかしてtinyintsとして保存できれば、多くのスペースを節約できます。

4

1 に答える 1

1

PHP には、ここで使用できる 2 つのデータ型があります:integerstring.
PHP には、選択できる他の型はありません (float整数には適していません。他の型は適切ではありません)。

int は通常 32 ビットまたは 64 ビットで、文字列は 1 文字あたり 1 バイトです。* 数が多い場合を除き、32 ビットの int で問題が発生することはないと思います。絶対にメモリを安全に確保したい場合** で、数値が最大 3 桁の場合は、数値を文字列として処理できます。前後にキャストする必要なく、文字列番号を直接操作できるようにするBCMath拡張もあります。ただし、非常に限られた利益になる可能性があるため、非常に面倒です。

ただし、 MySQL TINYINT は通常ブール値に使用されますが、PHP にブール型があることに注意してください...!


* 1 バイト文字あたり 1 バイト、つまり。** 通常、PHP スクリプトは非常に一時的なものにすぎないため、ストレージ容量ではなく、ピーク
メモリ使用量の 問題のみが発生するはずです。型で遊ぶよりも、より多くの RAM を取得する方が効率的な解決策になる場合があります。

于 2011-08-01T23:06:50.800 に答える