2011-08-12 43 views
1

我定义了一个名为$thumbs_number.为什么这个数字在php if语句中不起作用?

可变我做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); ? 
+1

'string(52)'表示它不只是'“2”'。这个字符串从哪里来? – deceze

+0

上面的评论(欺骗)暗示了正确的方向;该字符串包含的不仅仅是2,所以比较必须失败。顺便说一句 - 什么样的奇怪的函数调用呢? – wonk0

回答

2

http://plugins.svn.wordpress.org/gd-star-rating/tags/1.9.9/code/fn/legacy.php在文档中显示“@return string html with rendered contents”。它可能不仅仅是返回数字或空格,而且还包含html标签(您可以通过在输出结果中使用'view source'来检查它,如果您只是在浏览器中查看它,它会解析html-标签,你不会看到它们。)

简单的修剪是不够的。 (此外,PHP可以自动转换字符串与空格到一个数字。)检查一个更合适的WordPress功能,给它没有HTML,你想要的数字,或使用正则表达式/子串提取数字。

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)); 

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