var_dump输出空字符串 - php

时间:2012-11-27 22:07:00

标签: php mysql var-dump

您好我正在执行一个SQL查询(只返回一行),我正在屏幕上打印一个特定列,仅用于测试目的。我遇到的问题是,我打印的列包含一个12个字符的字符串(abcdef123456),但有时打印的变量是空的。 所以当我做var_dump($test);

有时我会:

string(12) "abcdef123456"

但有些时候我会

string(12) ""

我不明白为什么它知道有12个字符但它仍然是空的,有时它会说12个字符但它已经满了。因此,我不能执行其他功能,因为他们依赖于字符串。

编辑:这是查询

$query="SELECT * FROM members WHERE name='$member'";
$sqlResult=mysql_query($query);
$row = mysql_fetch_assoc($sqlResult);
$test = $row["membercode"];
var_dump($test);

3 个答案:

答案 0 :(得分:2)

你在哪里看到string(12) ""?记住要始终查看原始输出;源代码。不是浏览器如何呈现它。

例如,如果字符串为<span></span>,那么它将显示为无效。

答案 1 :(得分:1)

您最有可能在字符串中使用由浏览器呈现的html标记。

$foo = "<p><img><div><table>";
var_dump($foo); // string(20) ""

答案 2 :(得分:1)

  1. 尝试添加header('Content-Type: text/plain')以将文字呈现为文字而非HTML。或使用“查看源”查看HTML源代码而不是呈现的页面。字符串中可能隐藏着HTML标记。

  2. 试试var_dump(bin2hex($test))。可能存在您无法看到的"\0"等隐形控制字符。例如:

    $ php <<< '<?php var_dump("\0\0\0\0"); ?>'
    string(4) ""
    $ php <<< '<?php var_dump(bin2hex("\0\0\0\0")); ?>'
    string(8) "00000000"