Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【PHP8.x】EXTR_PREFIX_SAME定数の使い方

EXTR_PREFIX_SAME定数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

EXTR_PREFIX_SAME定数は、PHPのextract()関数で、既存の変数名との衝突を避けて配列の要素を変数としてスコープにインポートするための定数です。extract()関数は、連想配列のキーを変数名に、その値を対応する変数として現在のスコープに展開する機能です。

この定数をextract()関数の第2引数に指定した場合、展開しようとする配列のキーが既に存在する変数名と重複しても、既存の変数を上書きしません。その代わりに、衝突した変数に対しては、extract()関数の第3引数で指定されたプレフィックスを付加した新しい変数を生成し、配列の値を割り当てます。

これにより、既存の変数の値を保護しつつ、配列からのデータも新しい名前で安全に利用できるようになります。EXTR_PREFIX_SAME定数は、変数名の衝突による意図しないデータ上書きを防ぎ、堅牢なコード作成に貢献します。

構文(syntax)

1<?php
2$existing_var = 'original_value';
3$data_array = [
4    'existing_var' => 'new_value_from_array',
5    'another_key' => 'value_for_another_key'
6];
7
8// 配列 $data_array から変数にインポートします。
9// $existing_var と同じ名前のキーが存在するため、
10// EXTR_PREFIX_SAME フラグにより、配列の値には指定されたプレフィックス ('my_prefix_') が付きます。
11extract($data_array, EXTR_PREFIX_SAME, 'my_prefix_');
12
13// この処理の結果:
14// $existing_var は 'original_value' のまま維持されます。
15// $my_prefix_existing_var という新しい変数が作成され、その値は 'new_value_from_array' になります。
16// $another_key という変数が作成され、その値は 'value_for_another_key' になります。
17?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

int

EXTR_PREFIX_SAME は、連想配列をループ処理する際に、キーの衝突が発生した場合に、新しいキーの先頭に接頭辞を追加せずに、元のキーをそのまま使用することを示す整数定数です。

関連コンテンツ