PHP-Empty字符串帮助

时间:2011-02-17 15:53:57

标签: php

我正在使用的CMS有一个插件,可根据您标记这些页面的方式提取一系列页面。一切正常,但我需要显示用户发送查询后返回的页数。

存储记录数的变量是一个字符串。我正在编写的小脚本试图检查这个字符串是否为空,如果是,则回显无效,但如果它不是空白,则返回返回的页数。

<?php

if ($count !== ''){
    echo "text";
}

?>

然而,每当字符串被认为是空的时候传递它,它就会把它视为不是。我不确定我做错了什么或字符串包含什么不是空的。

我找到了一个关于将字符串转换为整数的资源,但它将其设置为0.感谢您的帮助。

7 个答案:

答案 0 :(得分:3)

如果您之前修剪它,

$ count将永远不会等于''。

答案 1 :(得分:1)

修剪后它不能等于'',你应该检查它是否等于空字符串而不是带有空格的字符串。 (修剪删除空格)

trim - 从字符串的开头和结尾去掉空格(或其他字符) http://php.net/manual/en/function.trim.php

答案 2 :(得分:0)

trim删除所有空格,因此如果您先剪裁,$count == ' '将始终为false。对代码进行最简单的更改就是将' '替换为''。或者您可以这样做:echo trim($count) === '' ? '' : "text";

答案 3 :(得分:0)

trim()将从字符串的开头和结尾删除所有空白字符。除非中间有内容,否则你最终可能会得到一个完全空的字符串。如果您正在对此进行测试,请尝试查看empty()is_null()

if (empty($string)) {
  echo "String is empty.";
}

我发现使用内置函数而不是硬编码==''比较更好。

答案 4 :(得分:0)

使用var_dump()检查变量的类型和内容。 Check the manual

答案 5 :(得分:0)

你的代码似乎错了;你有“!==”,我发誓你需要“!=”(只有一个等号)。我不确定“!==”会评价什么,但我敢打赌这不是你想要的。

答案 6 :(得分:0)

从评论中可以看出,你的“空白”字符串不是空白,而是有一些奇怪的东西。假设它不是太奇怪,我只是试试这个:

$count = intval($count);
if ($count) {
  echo 'text';
}

虽然这假设$ count实际上看起来像是一个数字到intval当它有一个数字 - 我们可能需要看一下这个“字符串”,你会更详细地回过头来弄清楚什么是真的在其中。

希望您已经接受了其他人给出的建议并在执行var_dump()之后查看了生成的页面源 - 否则我猜测$ count中包含XML,或其他不会呈现的内容好吧,如果你把它转储到HTML页面并查看页面而不是源...

如果没有别的,你真的可以尝试强制它:

$count = intval(preg_replace('/[^\d]/', '', $count));
if ($count) {
  echo 'text';
}

...但是真的最好找出这个奇怪的插件给你的东西,以及为什么。它是哪个CMS和插件?是否有一些可用于此事的文档可以为您返还$ count?你有插件源吗?