タグ

2012年8月16日のブックマーク (3件)

  • PHPでConstな配列を作る - mikedaの日記

    こんな定数はイヤなので定数な配列を作れないものか。 define("MONTH_1", "Jan"); define("MONTH_2", "Feb"); というわけで作ってみた ArrayAccessインタフェースを使います。 <?php class ConstArray implements ArrayAccess { public function __construct(array $values) { $this->values = $values; } // 参照(許可。存在しない場合は例外投げる) public function offsetGet($offset) { if(!$this->offsetExists($offset)) { throw new Exception('値がないです'); } return $this->values[$offset]; } //

    PHPでConstな配列を作る - mikedaの日記
    nogoro
    nogoro 2012/08/16
    配列を定数とする件の続き(前2項参照)。変更できない定数にするには、ArrayAccessインタフェースを使う、という例。だけど面倒くさい(可読性の低下)なので、使わない…
  • PHPでの定数配列について - 仕事なんて大嫌い

    cakePHPの勉強しているが、そもそもPHPの自体の知識が不十分(だったらPHPの基礎から勉強しろよって話しだけどw)。 static な 定数配列みたいなものをPHPでやろうと思ったけど、標準では良い方法がない。 だけど、単なる配列の変数宣言だけだと、変なプログラマが配列の中身を変えてしまう可能性があるし… なので、以下の方法で簡単実装してみたけど、こんなやり方は普通しないのかなぁ? class Domains { // ユーザーの種類をテーブル上はcodeで保存 private static $userTypes = array( "admin" => array('code'=>'1', 'label'=>"管理者") ,"normal" => array('code'=>'2', 'label'=>"一般会員") ,"charged" => array('code'=>'3',

    PHPでの定数配列について - 仕事なんて大嫌い
    nogoro
    nogoro 2012/08/16
    配列を定数定義(constやdefine)できないので、次善の策。前後項も参照。 PHP6では、配列を定数定義できるようになるんだっけ??
  • PHP: クラス定数 - Manual

    クラス定数 値が変更できない 定数 をクラス内に定義することができます。 クラス定数のデフォルトのアクセス範囲は public です。 注意: クラス定数は、子クラスで再定義することもできます。 PHP 8.1.0 以降では、final として定義されたクラス定数は、子クラスで再定義できません。 インターフェイスに定数を持たせることもできます。 インターフェイスについてのドキュメント で例を御覧ください。 変数を用いてクラスを参照することも可能です。 変数の値に (self や parent、 static といった) キーワードを指定することはできません。 クラス定数はクラス単位で割り当てられるものです。インスタンス単位ではないことに注意しましょう。 <?php class MyClass { const CONSTANT = 'constant value'; function sho

    PHP: クラス定数 - Manual
    nogoro
    nogoro 2012/08/16
    「define」出来ないクラス内に定数を定義するには「const」を使うって話。 例1の「echo $classname::constant」は「echo ${classname}::constant」がbetterでは? 例中の「echo $class::constant」と差異化できるから。 次2項も参照。