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

→‎列挙型: enum型と変数の同時宣言の実装状況
(→‎列挙型: enumの中にenumを入れるという、enumの入れ子(ネスト)については、現状のところは仕様も不明です。)
(→‎列挙型: enum型と変数の同時宣言の実装状況)
?>
</syntaxhighlight>
:(※ 2021年10113118日に、 GitHub "php / phpPHP8.1-src" レポジトリから取得したソースファイルRC6を、Fedora 35上でビルドして動作確認。)
 
 
実行結果
;ネストは不明
なお、enumの中にenumを入れるという、enumの入れ子(ネスト)については、現状のところは動作例は不明ですし仕様も不明です。おそらくenumのネストについては非サポートです。そもそもC言語自体に現状、enumのネストがない状態です(2021年に記述)。
 
 
=== enum型と変数の同時宣言の実装状況 ===
enum を宣言する際、enum型の変数を下記コードのように同時に宣言できますが、しかし2個以上の変数には対応しておらず1個しか宣言できません。
 
コード例
<syntaxhighlight lang="PHP">
<?php
 
enum gameMode
{
case map;
case menu;
case battle;
} $a;
// 最後の行では $a,$b; と2個以上で宣言するとコンパイルエラー
 
$a = gameMode::battle ;
$b = gameMode::menu ; // このサンプルコードでは$bは以降は未使用。参考のため書いている。
 
if ($a == gameMode::battle ){ print("今、戦闘画面を操作中です。" . "\n") ; }
if ($a == gameMode::menu ){ print("今メニュー画面を操作中です。" . "\n") ; }
 
?>
</syntaxhighlight>
:(※ 2021年11月18日にPHP8.1-RC6を、Fedora 35上でビルドして動作確認。)
 
実行結果
<pre>
今、戦闘画面を操作中です。
</pre>
 
PHP7以降の近年のPHPは、限定的ですが型の機能を導入することで安全な動作を保障できるように開発していく方針になっています。関数など一部の機能では、最新版のPHPでは、すでに型が使えます。なのでもしかたらenumについても型が使えるようになるのかもしれない可能性もありますが、現状ではまだ可能性です。
 
 
=== スカラ値つきのenum ===
23,093

回編集