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