「PHP/Webアプリケーション向けの機能」の版間の差分
削除された内容 追加された内容
→スカラ値つきのenum: 修正。nameプロパティは要素名へのアクセスだった |
→スカラ値つきのenum: さて、enumで定義した整数値を使って計算したい場合、下記のように<code>->value</code>プロパティで代入値にアクセスする必要があります。 |
||
565 行
enum に整数型(int)または文字列型(string)の値をつけることが可能です。
enumの要素に関連づけられた数値にアクセスする場合、下記コードのように <code>->value</code> が必要です。これは整数型でも文字列型でも、ともに <code>->value</code> です。なお int も string もつけず <code>->value</code>でアクセスするのは非推奨であり、警告されます。(<code>Warning: Undefined property:</code> などの文字列。またintを宣言せずにenumを使用した場合に各要素の代入される数値は現状、0,1,2,3・・・'''ではない'''です。なので、値つき宣言して無い場合には、代入値の順番や大小などは一切当てにしないのが安全でしょう。)
なお、enum要素名(下記コード例でなら"buki"や"tate"の部分のこと)にアクセスする場合には <code>->name</code>になります。▼
▲
valueというプロパティは、enumをintまたはstringに関連づけて宣言しおえた段階までに自動で生成されます。よって、プログラマー側でvalueプロパティを宣言する必要はありません。nameプロパティも同様です。▼
▲つまり valueというプロパティは、enumをintまたはstringに関連づけて宣言しおえた段階までに自動で生成されます。よって、プログラマー側でvalueプロパティを宣言する必要はありません。nameプロパティも
また、<code>value</code>以外のデタラメな文字列(たとえば「vabqe」)とかのプロパティを書いてもエラーになります。
597 ⟶ 598行目:
?>
</syntaxhighlight>
:(※ 2021年
607 ⟶ 608行目:
なお、C言語やPythonなど他の一部の言語では自動的にスカラー値を付ける機能があるのですが、しかしPHPでは現状ではまだそのような機能や仕様は知られていません(2021年に本文を記述)。なおC言語ではこのような機能があるので、switch文のラベルの番号付けの省略としてenumを応用する例が有名です。
さて、enumで定義した整数値を使って計算したい場合、下記のように<code>
コード例
630 ⟶ 631行目:
}?>
</syntaxhighlight>
:(※ 2021年
実行結果
|