在函数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
?
怎么做?
最好没有全局参数。
答案 0 :(得分: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']);
答案 1 :(得分:0)
许多方法可以做到这一点: 首先,如果要在其他类上使用,则必须返回该值。 在你的测试中你可以做到:
$something = new Conf();
$someelse = $something->test();
echo $someelse;