为什么这个数字在php-if语句中不起作用


Why is this number not working in a 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); ?

http://plugins.svn.wordpress.org/gd-star-rating/tags/1.9.9/code/fn/legacy.php在文档中显示"@return string html with rendered contents"。它可能不仅仅是返回数字或空格,而是返回html标记(你可以在输出结果上使用"查看源代码"来检查这一点。如果你只是在浏览器中查看它,它会解析html标记,但你看不到它们。(

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

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

修剪空白,它应该可以正确地进行比较。