0

クラスやおっとに新しいものを探しているわけではありませんが、これに対する答えを見つけることができないようです。クラスメソッドを呼び出すときに変数を使用できるかどうかを知りたいです。

ユーザーがシステムにログインすると、ユーザーの役割に基づいてダッシュボードにグラフを表示したいと考えています。

まず、ここに私のクラスの例を示します

class Dashboard
{
  function get_guest_graph1()
  {
    return 'guest graph';
  }

  function get_user_graph1()
  {
    return 'user graph';
  }
}

ページで私は言うことができます

$user->userRole;

これにより、ゲストまたはユーザーが返されます。

したがって、役割を確立したら、これを変数に入れます。

$role

その後、次のことができる方法はありますか?

Dashboard::get_$role_graph1();
4

2 に答える 2

1

この質問はすでに回答されていますが、読みやすさが問題になる場合は、これを処理するはるかに優れた方法があると思います。

まず、chaining_characters_for_variable_names ではなく、関数でキャメル ケーシングを使用します。

class Dashboard {
    function getFirstUserGraph() {
        return 'user graph 1';
    }
}

関数名に数字を使用することはお勧めしません!

次に、Dashboard::getFirstUserGraph() を呼び出すという目的を達成するには、単純にそれを静的関数にします。

public static function getFirstUserGraph() {}

次に、クラスをインスタンス化する必要はありませんが、静的に使用します。

最後に、変数を介してクラス メソッドを呼び出すことは、call_user_func() の見苦しさがなければかなり単純です。下記参照:

$getGraph = "getFirstUserGraph";
Dashboard::$getGraph();

チャンピオンのように機能し、より見栄えがします。それが役立つことを願っています!

于 2013-09-06T16:37:41.383 に答える