将数组传递给函数php
问题描述:
我从使用var_export的html表单获取信息。将数组传递给函数php
$info = var_export($_POST);
echo '<pre>';
$info;
echo '</pre>';
当我打印出的$信息的内容是这样的输出:
阵列( '姓名'=> '一个', '地址'=> 'B', '城市'=> 'c','state'=>'d','zip'=>'1','phone'=>'2','open'=>'3','close'=>'4',)
这是正确的,但是当我传递变量的函数:
validate($info);
function validate($data){
echo "Hello";
echo '<pre>';
$data;
echo '</pre>';
}
,并尝试打印的内容再次不显示任何信息。我知道它会进入函数,因为“Hello”会被打印。这里发生了什么?
感谢所有帮助
答
试试这个:
function validate($data){
echo "Hello";
echo '<pre>';
print_r($data);
echo '</pre>';
}
答
又一解决方案:
validate($info);
function validate($data){
echo "Hello";
echo '<pre>';
// Start capturing output
ob_start();
// var_dump() outputs the string.
var_dump($data);
// print out everything captured since last call to ob_start()
echo ob_get_clean();
echo '</pre>';
}
的ob_start()开始捕获任何输出。 ob_get_clean()将任何输出转储到一个字符串。这样做会打印出您在执行var_dump($ data)时看到的内容。
答
var_export
结合了将数组转换为字符串和打印数据的功能。你不能打印数据(或“回声”),只需将该变量放置在脚本中,就像使用$info;
行一样。
如果您想按原样查看数组的内容,请按前面所述使用print_r($array)
。如果要查看使用var_export()
创建的字符串,请使用echo $data;
。
print_r($data);
将不会像您所描述的那样工作$data
不是数组而是字符串。
这里是我会做什么:
function validate($data){
echo "Hello!";
echo "<pre>";
print_r($data);
echo "</pre>";
}
validate($_POST); // since you actually must call the function after it's been declared
你觉得呢'var_export()'呢? – zerkms 2012-07-20 02:35:11
@zerkms我看到我在哪里搞砸了,我相信var_export会自动返回变量表示,现在我发现它必须设置为true,谢谢你的帮助 – Ameya 2012-07-20 16:06:00