「PHP/条件分岐」の版間の差分

ナビゲーションに移動 検索に移動
(→‎列挙型: PHP8では関数の引数に型をつけることができるが、下記のように引数としてenum変数を使う際には型の代わりにenumグループ名をつけることもできる。)
 
なお、C言語などのよその言語ではswitch文のラベル番号の省略などの応用にenumを使うのが有名なのですが、しかしPHPでは現状、整数の自動的な割り当ての機能の仕様が不透明なので、switch文への応用の可能性も不明です。
 
そもそも何のためにenumを使うのか、enumのどこが便利かというと、enumを使わずに代わりに場合分けの各条件に対応する数値で場合分けをすると、どの数値が、どの条件だったかを、第三者が確認するのが面倒になります。(こういう、プログラムした本人でないと分からない番号のことを「マジックナンバー」と言います。コメントなどで意図を説明する方法もありますが、どちらにせよ手間です。)
 
また、気が変わって条件の順番を書き換えるとき、もしenumが無いと、順番の入れ替えのたびに番号を振り直しになるので、とても面倒です。
 
PHPのenumの場合、特に数値を割り当てしないかぎりは、そもそもenum定数に数値が格納されません。より確実にマジックナンバー問題が防げます。
 
なお、おおむね用語として、
<syntaxhighlight lang="PHP">
enum 列挙体名
{
case 列挙定数名1;
case 列挙定数名2;
case 列挙定数名3;
}
</syntaxhighlight>
 
のような呼び方をします。「列挙定数」という代わりに「列挙子」と言う場合もあります。
 
「列挙体名」という代わりに「列挙型名」という場合もあります。
 
 
23,379

回編集

案内メニュー