Posts Tagged ‘小ネタ’

プログラム小ネタ集1

どうにもうまく時間が取れずにプラグイン開発ができない…

ので、仕事で培ったプログラムの小ネタでお茶を濁すことにします。

1・定数を動的に呼び出す

<?php
class Hoge{
    const FOO = 'piyo';
    function test($string){
        $string = 'self::'.$string;
        // 定数が定義されているかチェックする
        if(defined($string)){
            // 定数の値を取り出す
            return constant($string);
        }
        return false;
    }
}

$hoge = new Hoge();
$hoge->test('FOO');

2・呼び出し元の情報を取得する

<?php
class Hoge{
    function test(){
        $this->test2();
    }
    function test2(){
        // トレース配列を取得
        $e = new \Exception;
        $trace = $e->getTrace();

        // 呼び出し元ファイル
        echo $trace[0]['file'];
        // 呼び出し元行数
        echo $trace[0]['line'];
        // 呼び出し元クラス
        echo $trace[1]['class'];
        // 呼び出し元メソッド
        echo $trace[1]['function'];
    }
}

$hoge = new Hoge();
$hoge->test();