-1

差分ページで 2 つのクラスを分けています。私がやりたいことは、関数から返された値を保存し、それを別の関数に渡すことです。私は以下のコードを持っています:

クラス publicfunction (publicfunction.php 上)

class publicfunction {
  public static function getqs() { 
    $qs = array();
    parse_str($_SERVER['QUERY_STRING'], $qs);
}}

クラス be_mstpublc (be_mstpublc.php 上)

class be_mstpublc {
  public static function setmstpublcpgtitle() { 
    if(!empty($qs['mst'])) {
        switch($qs['mst']) {
            case 'A': 
                $pagetitle = "A";
                break;
}}}}

次に、別のページで上記の関数を実装します。

call_user_func(array('publicfunction', 'getqs'));
call_user_func(array('be_mstpublc', 'setmstpublcpgtitle'));
echo $pagetitle;

しかし、それは値を返しません。

何か案は?ありがとう..

- 編集 -

URL に値を渡しました。例: localhost/test/index.php?mst=A

4

2 に答える 2

3

まず、return値。それ以外の場合はどこにも行きません。

public static function getqs() { 
    $qs = array();
    parse_str($_SERVER['QUERY_STRING'], $qs);

    return $qs;
}

次に、それをパラメーターとして受け入れます。

public static function setmstpublcpgtitle($qs) {
  ...
}

次に、それを渡します:

$qs = publicfunction::getqs();
be_mstpublc::setmstpublcpgtitle($qs); 
于 2012-08-06T06:49:28.623 に答える
0

あなたの問題は可変スコープの1つです。このメソッドは、と呼ばれるローカル変数publicfunction::qs()を暗黙的に宣言しています。このメソッド以外ではアクセスできません。$qs

通常、ストレージをクラスに配置する場合、同じクラスに複数のメソッドを設定および取得する必要があります。setmstpublcpgtitle1つの解決策は、クラスに入れることpublicfunctionです。ただし、この2番目の方法にも同じ問題があります。設定するだけでなく、返す必要が$pagetitleあります。

于 2012-08-06T06:50:27.873 に答える