1

関数test()で作成された配列。

次に、それらをtest.phpページに印刷したいと思います。

私のコードダウン:

conf.php

function test(){
$str= array(
        'items' => array(
                0 => array(
                        'title' => 'Title',
                        'category' => 'Category name',
                        ),
                1 => array(
                        'title' => 'Title',
                        'category' => 'Category name',
                        ),
        ),
        'details' => array(
                'firstname' => 'firstname',
                'lastname' => 'lastname',
        ),
        'Id' => $Id,
        'OrderId' => 'fsdfsfdsrew'
);


$json = json_encode($str);
$base64 = base64_encode($json);

$sig = signMessage($base64, $secretPhrase);
}

test.php

require_once("conf.php");

test();
print_r($str);
print_r($json);
print_r($base64);
print_r($sig);

コードが機能しない理由を教えてください。

$str、、、、が印刷さ$jsonれなかった理由$base64を教えてください$sig

どうですか?

できればグローバルパラメータなしで。

4

2 に答える 2

2

関数の戻り値としてそれらを返さずにはいられません。PHPでは、関数で宣言された変数(この場合はprint_rしようとしている配列)は、globalキーワードでグローバルに宣言しない限り、その関数のスコープ内でのみ使用できます。

PHPの変数スコープの詳細は次のとおりです。http://php.net/manual/en/language.variables.scope.php

これらの配列を含むより大きな配列を作成し、test()関数から返すことができます。

 function test(){
     //function code here....
     ////...

     $results = array('str'=> $str, 
                      'json'=> $json, 
                      'base64'=>$base64, 
                      'sig' => signMessage($base64, $secretPhrase)
                  ) ;

      return $results;
  }

次に、次のように呼び出します。

  $results = test();
  print_r($results['str']);
  print_r($results['sjson']);
  print_r($results['base64']);
  print_r($results['sig']);
于 2013-01-17T15:44:15.043 に答える
0

これを行うには多くの方法があります。まず、他のクラスで使用する場合は、値を返す必要があります。あなたのテストであなたはすることができます:

$something = new Conf();
$someelse = $something->test();
echo $someelse;
于 2013-01-17T15:46:21.597 に答える