ある程度の規模のシステムでファンクション名を決めていると、ファンクション名が被ることがある。
そう言うとき、機能クラスを作って、そのstaticメソッドとして定義することで、クラス名::メソッド名でコールすることが出来るのでちょっと便利。
staticは、クラスをインスタンス化していなくても呼び出せる物で、変数とメソッドについて定義できる。
class ORDER{
public static $PAYMENT_METHODS = array(‘CARD’, ‘PAYPAL’, ‘CHECK’);
public static makeList($list){
~
}
}class INVOICE{
public static makeList($list){
~
}
}
みたいな定義をしておくと、同じmakeList命令をORDERのmakeListとINVOICEのmakeListに明示して使い分けることが出来る。
非staticだと、
$order = new ORDER();
$order->makeList($order->PAYMENT_METHODS);
$invoice = new INVOICE();
$invoice->makeList($list);
のように、newを使ってインスタンスを作らなければならないけど、static宣言している場合は
ORDER::makeList(ORDER::$PAYMENT_METHODS);
INVOICE::makeList($list);
みたいに呼び出せるので、コードが楽になる。
(79)