by shigemk2

当面は技術的なことしか書かない

可変関数を応用してみよう

可変関数とは

これ参考にして頂ければ。
PHP: 可変関数 - Manual

<?php
function foo()
{
    echo "In foo()<br />\n";
}

$func = 'foo';
$func();        // This calls foo()

適当に可変関数を応用してみよう

変数に関数名をぶちこめば、その変数を使うことで関数を呼び出せる。
これを応用して、配列に関数名を放り込んでみようか。

<?php
class BigRoom {
  var $func_array = array("nadeshiko" => "test1",
                          "sakurako"  => "test2",
                          "hanako"    => "test3");

  function test1() {
    echo "それには及ばないわ" . PHP_EOL;
  }

  function test2() {
    echo "失礼" . PHP_EOL;
  }

  function test3() {
    echo "ごめん、あんまよく知らない" . PHP_EOL;
  }

}

$BR = new BigRoom();
$BR->test1();
$func = $BR->func_array["sakurako"];
$BR->$func();

このようにすれば、配列の要素をキーに、メソッドを呼び出すことが出来る。