-1

我正在使用 var_export 从 html 表单中获取信息。

$info = var_export($_POST);

echo '<pre>';
$info;
echo '</pre>';

当我打印出 $info 的内容时,这是输出:

数组('name' => 'a', 'address' => 'b', 'city' => 'c', 'state' => 'd', 'zip' => '1', 'phone' => '2', '打开' => '3', '关闭' => '4', )

这是正确的,但是当我将该变量传递给函数时:

validate($info);
function validate($data){
    echo "Hello";
    echo '<pre>';
    $data;
    echo '</pre>';
}

并尝试再次打印内容它不打印任何内容。我知道它正在进入函数,因为“Hello”被打印出来了。这里发生了什么?

谢谢你的帮助

4

5 回答 5

3

尝试这个:

function validate($data){
  echo "Hello";
  echo '<pre>';
  print_r($data);
  echo '</pre>';
}
于 2012-07-20T02:33:03.040 回答
3
$data;

什么都不做。

尝试print_r($data);或为单个数组元素echo $data['name'];

于 2012-07-20T02:33:29.870 回答
1

首先,只是将变量放在那里不会输出它(据我所知)。 echo它也不起作用,因为它只会输出 type Array。你会想要使用var_dump()或者print_r()

于 2012-07-20T02:33:10.750 回答
0

另一个解决方案:

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) 时看到的内容。

于 2012-07-20T02:38:36.887 回答
0

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
于 2012-07-20T02:41:56.783 回答