我正在使用的CMS有一个插件,可根据您标记这些页面的方式提取一系列页面。一切正常,但我需要显示用户发送查询后返回的页数。
存储记录数的变量是一个字符串。我正在编写的小脚本试图检查这个字符串是否为空,如果是,则回显无效,但如果它不是空白,则返回返回的页数。
<?php
if ($count !== ''){
echo "text";
}
?>
然而,每当字符串被认为是空的时候传递它,它就会把它视为不是。我不确定我做错了什么或字符串包含什么不是空的。
我找到了一个关于将字符串转换为整数的资源,但它将其设置为0.感谢您的帮助。
答案 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?你有插件源吗?