Почему этот номер не работает в php if-Statement? - PullRequest
1 голос
/ 12 августа 2011

Я определил переменную с именем $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 ]

2 голосов
/ 12 августа 2011

http://plugins.svn.wordpress.org/gd-star-rating/tags/1.9.9/code/fn/legacy.php говорит "html @return string с отображаемым содержимым" в документах. Вероятно, это не просто возвращение числа или пробела вместе с ним, но html-теги (вы можете проверить это, используя 'view source' в результате вывода. Если вы просто просматриваете его в браузере, он проанализирует html теги и вы их не увидите.)

Простой обрезки недостаточно. (Кроме того, php может автоматически конвертировать строку с пробелами в число.) Либо проверьте более подходящую функцию wordpress, которая возвращает желаемый номер без html, либо используйте regexp / substring для извлечения числа.

0 голосов
/ 12 августа 2011
$thumbs_number = trim(wp_gdsr_render_article_thumbs($template_id = 46, $read_only = false, $stars_set = "", $stars_size = 0, $stars_set_ie6 = "", $echo = false));

Урежьте пробел, и он должен сравниваться правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...