Map
キーと値のペアを扱う不変のコレクションです。
名前空間
php
WizDevelop\PhpValueObject\Collection\Map実装インターフェース
ICollectionArrayAccessCountableIteratorAggregateJsonSerializable
ジェネリック型
php
Map<TKey, TValue>ファクトリメソッド
from
php
public static function from(Pair ...$pairs): staticPair から Map を作成します。
php
$map = Map::from(
new Pair('name', 'John'),
new Pair('age', 30)
);make
php
public static function make(array $items): static連想配列から Map を作成します。
php
$map = Map::make(['name' => 'John', 'age' => 30]);empty
php
public static function empty(): static空の Map を作成します。
tryFrom
php
public static function tryFrom(Pair ...$pairs): Result<static, ValueObjectError>検証付きで Map を作成します。
tryFromResults
php
public static function tryFromResults(array $results): Result<static, ValueObjectError>Result の配列から Map を作成します。
値へのアクセス
get
php
public function get(TKey $key): TValueキーに対応する値を取得します。
php
$map = Map::make(['name' => 'John']);
$name = $map->get('name'); // 'John'has
php
public function has(TKey $key): boolキーが存在するか判定します。
配列アクセス
php
$map['name']; // 'John'
isset($map['name']); // truefirst / last
php
public function first(?callable $predicate = null): Option<TValue>
public function last(?callable $predicate = null): Option<TValue>最初 / 最後の要素を取得します。
sole
php
public function sole(?callable $predicate = null): TValue条件に一致する唯一の要素を取得します。
キーと値の取得
keys
php
public function keys(): ArrayList<TKey>すべてのキーを ArrayList として取得します。
php
$keys = $map->keys(); // ArrayList['name', 'age']values
php
public function values(): ArrayList<TValue>すべての値を ArrayList として取得します。
php
$values = $map->values(); // ArrayList['John', 30]追加・削除
すべての操作は新しいインスタンスを返します。
put
php
public function put(TKey $key, TValue $value): staticキーと値を追加または更新します。
php
$updated = $map->put('email', 'john@example.com');putAll
php
public function putAll(array $items): static複数のキーと値を追加します。
forget / remove
php
public function forget(TKey $key): static
public function remove(TKey $key): staticキーを削除します。
変換操作
map
php
public function map(callable $callback): static各値を変換します。
php
$doubled = $map->map(fn($v) => $v * 2);mapStrict
php
public function mapStrict(callable $callback): static型を厳格にチェックしながら変換します。
filter
php
public function filter(callable $predicate): static条件に合う要素を抽出します。
php
$filtered = $map->filter(fn($v) => is_string($v));filterAs
php
public function filterAs(string $className): static指定したクラスのインスタンスのみを抽出します。
reject
php
public function reject(callable $predicate): static条件に合わない要素を抽出します。
ソート・逆順
sort
php
public function sort(callable $comparator): static値でソートします。
reverse
php
public function reverse(): static逆順にします。
マージ
merge
php
public function merge(self $other): static別の Map をマージします。同じキーがある場合は後から渡した Map の値で上書きされます。
その他
isEmpty
php
public function isEmpty(): bool空かどうか判定します。
toArray
php
public function toArray(): array連想配列に変換します。
count
php
public function count(): int要素数を取得します。
使用例
設定値の管理
php
$config = Map::make([
'debug' => true,
'timeout' => 30,
'retries' => 3
]);
if ($config->get('debug')) {
// デバッグモード
}
$updated = $config->put('timeout', 60);