可変変数

ほうほう、と思った今日の可変変数。

<?php
class Html {

    protected $_remove = array('', '');
    protected $_removeToSearch = array('/\<\?php/', '/\?\>/');

    public function getPattern($toSearch) {
        $toSearch = "_" . $toSearch . "ToSearch";
        return $this->$toSearch;
    }

    public function getReplacement($toReplacement) {
        $toReplacement = "_" . $toReplacement;
        return $this->$toReplacement;
    }
}
?>

コードの中にPHPタグが入っていたら削除する。

<?php
$html = new Html();
$originalCode = '<?php die(); ?>';
$sanitizedCode = $html->preg_replace($tes->getPattern('remove'),$tes->getReplacement('remove'),$originalCode);
?>

可変変数のポイントは

    public function getPattern($toSearch) {
        $toSearch = "_" . $toSearch . "ToSearch";
        return $this->$toSearch;
    }

一度使いたい変数をreturnする前に作ってしまう、という事だった。以下だと動かない。

    public function getPattern($toSearch) {
        return $this->_" . $toSearch . "ToSearch";
    }

という訳で、ほうほうと可変変数について一つ賢くなりました。