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

→‎列挙型: == enum と match 式 == match式に enum 専用の機能は用意されていません。ですが、enum の name プロパティから要素名(文字列型である)にアクセスできることと、
(→‎列挙型: == enum と match 式 == match式に enum 専用の機能は用意されていません。ですが、enum の name プロパティから要素名(文字列型である)にアクセスできることと、)
print側でvalue指定
1
</pre>
 
== enum と match 式 ==
match式に enum 専用の機能は用意されていません。ですが、enum の name プロパティから要素名(文字列型である)にアクセスできることと、match式では文字列型も条件式に使えることを組み合わせることで、下記コードのようにenumとmatch式を普通に連動させられます。
 
<syntaxhighlight lang="PHP">
<?php
// 装備画面
enum soubiMode // : int を忘れないように
{
case buki ; // 武器
case tate ; // 盾
case kabuto ; // かぶと
}
 
$a = soubiMode::tate ;
 
match ($a->name) {
"buki", "tate" => print("{$a->name}データベースを編集。" . "\n"),
"kabuto" => print("カブトのデータベースは未作成。" . "\n"),
default => print("宣言されてない装備にアクセスしました。" . "\n") ,
 
};
 
?>
</syntaxhighlight>
 
実行結果
<pre>
tateデータベースを編集。
</pre>
 
23,094

回編集