将数组传递给函数php
我使用var_导出从html表单获取信息将数组传递给函数php,php,arrays,forms,argument-passing,Php,Arrays,Forms,Argument Passing,我使用var_导出从html表单获取信息 $info = var_export($_POST); echo '<pre>'; $info; echo '</pre>'; $info=var\u导出($\u POST); 回声'; $info; 回声'; 当我打印$info的内容时,这是输出: 数组('name'=>'a','address'=>'b','city'=>'c','state'=>'d','zip'=>'1','phone'=>'2','open'=>'
$info = var_export($_POST);
echo '<pre>';
$info;
echo '</pre>';
$info=var\u导出($\u POST);
回声';
$info;
回声';
当我打印$info的内容时,这是输出:
数组('name'=>'a','address'=>'b','city'=>'c','state'=>'d','zip'=>'1','phone'=>'2','open'=>'3','close'=>'4',)
这是正确的,但当我将该变量传递给函数时:
function validate($data){
echo "Hello";
echo '<pre>';
print_r($data);
echo '</pre>';
}
validate($info);
函数验证($data){
回音“你好”;
回声';
$data;
回声';
}
并尝试再次打印内容,因为它不会打印任何内容。我知道它会进入函数,因为“Hello”会被打印出来。这里发生了什么
感谢您的帮助试试这个:
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>';
}
函数验证($data){
回音“你好”;
回声';
打印(数据);
回声';
}
首先,仅将变量放在那里不会输出它(据我所知)echo
ing它也不会工作,因为它只会输出类型Array
。您将要使用或
什么都不做
尝试打印($data)代码>或对于单个数组元素echo$data['name']代码>另一种解决方案:
validate($info);
函数验证($data){
回音“你好”;
回声';
//开始捕获输出
ob_start();
//var_dump()输出字符串。
var_dump($数据);
//打印自上次调用ob_start()以来捕获的所有内容
echo ob_get_clean();
回声';
}
ob_start()开始捕获任何输出。ob_get_clean()将任何输出转储为字符串。这样做将准确地打印出在执行var_转储($data)时看到的内容。var_导出
结合了将数组转换为字符串并打印数据的功能。您不能像处理$info时那样,仅通过将变量放入脚本中来打印数据(或“回显”)代码>行
如果要按原样查看数组的内容,请按前面所述使用print\r($array)
。如果要查看使用var_export()
创建的字符串,请使用echo$data代码>
打印($data)
将无法正常工作,因为在您的案例中,$data
不是数组,而是字符串
下面是我要做的:
函数验证($data){
回声“你好!”;
回声“;
打印(数据);
回声“;
}
验证($_POST);//因为您实际上必须在声明函数之后调用它
还有一件事-在$info
中有NULL
,我会尝试一下,但是为什么它在函数之外的早期工作?它被打印成htmlpage@Ameya:因为var\u export
会打印它。你看过手册上的那一页了吗?你认为var_export()
有什么作用?@zerkms我知道我把事情搞砸了,我相信var_export会自动返回变量表示,现在我知道它必须设置为true,谢谢你的帮助
$data;
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>';
}
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