「PHP/Webアプリケーション向けの機能」の版間の差分
ナビゲーションに移動
検索に移動
→enum と match 式: 見出しレベルのtypoついでに加筆
(→列挙型: == enum と match 式 == match式に enum 専用の機能は用意されていません。ですが、enum の name プロパティから要素名(文字列型である)にアクセスできることと、) |
(→enum と match 式: 見出しレベルのtypoついでに加筆) |
||
</pre>
=== enum と match 式 ===
match 式の変数と条件式には、下記のように enum変数を入れることも出来ます。このため、下記のように書けます。
<syntaxhighlight lang="PHP">
<?php
// 装備画面
enum soubiMode
{
case buki ; // 武器
case tate ; // 盾
case kabuto ; // かぶと
}
$a = soubiMode::buki ; // 区別のため buki に変更
match ($a) {
soubiMode::buki, soubiMode::tate => print("{$a->name}データベースを編集。" . "\n"),
soubiMode::kabuto => print("カブトのデータベースは未作成。" . "\n"),
default => print("宣言されてない装備にアクセスしました。" . "\n") ,
};
?>
</syntaxhighlight>
実行結果
<pre>
bukiデータベースを編集。
</pre>
その他、matchの各条件(「soubiMode::kabuto」の部分)をもっと短く書きたい場合、下記コードのように、enum要素名をつかって条件分岐する方法もあります。
<syntaxhighlight lang="PHP">
<?php
// 装備画面
enum soubiMode
{
case buki ; // 武器
|