ファイルからハッシュを作るファクトリーメソッド

# QuickHashIntHash::loadFromFile

(PECL quickhash >= Unknown)

QuickHashIntHash::loadFromFile — ファイルからハッシュを作るファクトリーメソッド

### 説明

public static QuickHashIntHash::loadFromFile ( string `$filename` [, int `$options` ] ) : QuickHashIntHash

ディスク上の定義ファイルから新しいハッシュを作るファクトリーメソッドです。 ファイルフォーマットは、まずシグネチャ 'QH\0x11\0'、 そして要素数を表す 32 ビット符号付き整数値 (システムと同じエンディアン)、 その後に、システムと同じエンディアンでパックされた 32 ビット符号付き整数値が続きます。 ハッシュの各要素が、二つの 32 ビット符号付き整数値として格納されています。 最初の値がキー、そして次がそのキーの値となります。 以下に例を示します。

例1 QuickHash IntHash ファイルフォーマット

    00000000  51 48 11 00 02 00 00 00  01 00 00 00 01 00 00 00  |QH..............|
    00000010  03 00 00 00 09 00 00 00                           |........|
    00000018

例2 QuickHash IntHash ファイルフォーマット

    header signature ('QH'; key type: 1; value type: 1; filler: \0x00)
    00000000  51 48 11 00

    number of elements:
    00000004  02 00 00 00

    data string:
    00000000  01 00 00 00 01 00 00 00  03 00 00 00 09 00 00 00

    key/value 1 (key = 1, value = 1)
    01 00 00 00  01 00 00 00

    key/value 2 (key = 3, value = 9)
    03 00 00 00  09 00 00 00

### パラメータ

`filename`

  ハッシュを読み込むファイルのファイル名。

`options`

  クラスのコンストラクタが受け取るのと同じオプション。 size オプションは無視されます。 サイズはハッシュのエントリをもとにして自動的に算出され、 2 の階乗の中で直近の値に切り上げられます。 最大値は 4194304 です。

### 返り値

新しい QuickHashIntHash を返します。

### 例

例3 QuickHashIntHash::loadFromFile() の例

`<?php
$file = dirname( __FILE__ ) . "/simple.hash";
$hash = QuickHashIntHash::loadFromFile(
$file,
QuickHashIntHash::DO_NOT_USE_ZEND_ALLOC
);
foreach( range( 0, 0x0f ) as $key )
{
printf( "Key %3d (%2x) is %s\n",
$key, $key,
$hash->exists( $key ) ? 'set' : 'unset'
);
}
?>`

上の例の出力は、 たとえば以下のようになります。

    Key   0 ( 0) is unset
    Key   1 ( 1) is set
    Key   2 ( 2) is set
    Key   3 ( 3) is set
    Key   4 ( 4) is unset
    Key   5 ( 5) is set
    Key   6 ( 6) is unset
    Key   7 ( 7) is set
    Key   8 ( 8) is unset
    Key   9 ( 9) is unset
    Key  10 ( a) is unset
    Key  11 ( b) is set
    Key  12 ( c) is unset
    Key  13 ( d) is set
    Key  14 ( e) is unset
    Key  15 ( f) is unset