为什么这个数字不能用于php if语句?

时间:2011-08-12 13:25:22

标签: php if-statement

我定义了一个名为$thumbs_number.

的变量

我做了var_dump

string(52) "2"

print_r

2

现在看来$thumbs_number是2。 但后来我这样做了:

<?php if ( $thumbs_number == 2 ) : ?>
    <span><?php _e( 'two likes' ); ?></span>
<?php else : ?>
    <span><?php _e( 'likes' ); ?></span>
<?php endif; ?>

我仍然'喜欢'而不是'两个喜欢'

我做错了什么?

修改

这是来自:

的变量
<?php $thumbs_number = wp_gdsr_render_article_thumbs($template_id = 46, $read_only = false, $stars_set = "", $stars_size = 0, $stars_set_ie6 = "", $echo = false); ?

2 个答案:

答案 0 :(得分:2)

http://plugins.svn.wordpress.org/gd-star-rating/tags/1.9.9/code/fn/legacy.php在文档中说“带有渲染内容的@return string html”。它可能不只是返回数字或空格,而是html标签(您可以通过在输出结果上使用'view source'来检查这一点。如果您只是在浏览器中查看它,它将解析html-标签,你不会看到它们。)

简单的修剪是不够的。 (此外,php可以将带有空格的字符串自动转换为数字。)要么检查更合适的wordpress函数,在没有html的情况下返回所需的数字,或者使用regexp / substring来提取数字。

答案 1 :(得分:0)

$thumbs_number = trim(wp_gdsr_render_article_thumbs($template_id = 46, $read_only = false, $stars_set = "", $stars_size = 0, $stars_set_ie6 = "", $echo = false));

修剪空白,它应该正确比较。