タグ

2014年12月11日のブックマーク (4件)

  • PHPで列挙型(enum)を作る - Qiita

    列挙型 - Wikipedia まず列挙型の定義は〜となるんだけど、ここでは「あらかじめ定義した値のいずれかしか取らない特殊な型」という感じを想定してます。 要はSplEnumみたいなのですが、拡張モジュールの力を借りなくても、PHPだけで作れます。リフレクションを使うだけ。 <?php abstract class Enum { private $scalar; public function __construct($value) { $ref = new ReflectionObject($this); $consts = $ref->getConstants(); if (! in_array($value, $consts, true)) { throw new InvalidArgumentException; } $this->scalar = $value; } final

    PHPで列挙型(enum)を作る - Qiita
    Chisei
    Chisei 2014/12/11
  • Formatting DateTime object, respecting Locale::getDefault()

    Ask questions, find answers and collaborate at work with Stack Overflow for Teams. Explore Teams Create a free Team

    Formatting DateTime object, respecting Locale::getDefault()
    Chisei
    Chisei 2014/12/11
    曜日のローカライズをスマートに出来そう。
  • switch文を使ってはいけない

    昔Qiitaで書いた内容なんですが、PHPswitch文は悪名高い「==」演算子で比較を行います。 <?php switch (true) { case 0: echo '数字の0'; break; case '0': echo '文字列の0'; break; case '0.0': echo '文字列の0.0'; break; case true: echo '真偽値のtrue'; break; } このコードは「文字列の0.0」を出力します。大変分かりにくいですね。 この点はif ... elseif ...を使えば解決するんですが、switchで書きたくなるようなコードをelseifにするとおそらく読みにくくなるでしょう。 ではどうするか。 正解はオブジェクトのポリモーフィズム(多態性)機能を使うことです。 といっても、多態性で調べて出てくる記事とか書籍に関しては抽象的な説明が多い

    switch文を使ってはいけない
    Chisei
    Chisei 2014/12/11
  • メンタルモデル - Wikipedia

    この項目では、思考プロセスに関する人間学用語について説明しています。アニメ「蒼き鋼のアルペジオ」に登場する人間型インターフェイスについては「蒼き鋼のアルペジオ#メンタルモデル」をご覧ください。 メンタルモデル(英: mental model)とは、頭の中にある「ああなったらこうなる」といった「行動のイメージ」を表現したものである[1]。表象 (representation) と密接な関係を持つ[2]。 メンタルモデルは、外界の現実を仮説的に説明するべく構築された内的な記号または表現であり、認識と意思決定において重要な役割を果たす。メンタルモデルが構築されると、時間とエネルギーを節約する手段として慎重に考慮された分析を置換する。 単純な例として、「野生動物は危険だ」というメンタルモデルがあるとする。このメンタルモデルを保持する人は、野生動物に遭遇したとき反射的に逃げようとするだろう。これは自

    Chisei
    Chisei 2014/12/11
    “外界の現実を仮説的に説明するべく構築された内的な記号または表現であり、認識と意思決定において重要な役割を果たす”