php if-Statement на основе целых чисел не отображает результаты? - PullRequest
1 голос
/ 23 августа 2011

Я использую следующее preg_match:

preg_match( '!<div class="thumblock ">(.*)</div>!si' , wp_gdsr_render_article_thumbs(0, false, "", 0, "", false) , $n );
$thumbs_string = strip_tags( $n[1] );

Чтобы извлечь число между тегами span:

<div class="thumblock ">
<span class="rating-result">
<div id="gdsr_thumb_text_12_a" class="gdt-size-20 voted inactive gdthumbtext">+1</div>
</span>
<div class="ratingtext ">
<div class="raterclear"></div>
</div>

(в примере выше, результатом является строка: "+1")

Итак, я попытался преобразовать его в целое число с помощью этого:

$thumbs_number = (int)$thumbs_string;

который используется в этой функции:

function get_rating_class($thumbs_number) {
    if ($thumbs_number < 0) return ' bad';
    if ($thumbs_number < 2) return ' average';
    if ($thumbs_number < 4) return ' good';
    return ' excellent';
}

function rating_class($thumbs_number) {
    echo get_rating_class($thumbs_number);
}

для вывода класса div:

<div class="topic-like-count<?php rating_class($thumbs_number); ?>">

Я даже сделал var_dump():

<h2><?php var_dump($thumbs_string); ?></h2>
<h2><?php var_dump($thumbs_number); ?></h2>

и результаты были:

string(2) "+1" и int(1) соответственно (я прямо скопировал / вставил их сюда).

Но класс div не выводится.

Есть предложения, чтобы это исправить?

EDIT:

Класс действительно выводится в исходном коде HTML, но он не оказывает никакого влияния (и моя таблица стилей не кэшируется). У меня есть другая версия функции, которая не добавляет дополнительный div вокруг тегов span, и она работает, но, к сожалению, мне нужен этот div.

Ответы [ 3 ]

1 голос
/ 23 августа 2011

Если имя класса отображается в HTML, тогда код PHP в порядке. Вероятно, проблема в таблице стилей.

0 голосов
/ 23 августа 2011

Почему вы используете дополнительную функцию, которая используется только для эха? Следующее должно работать просто отлично.

<div class="topic-like-count<?=get_rating_class($thumbs_number);?>">
0 голосов
/ 23 августа 2011

Конечно .. добавьте echo перед вызовом rating_class($thumbs_number);:

<div class="topic-like-count<?php echo rating_class($thumbs_number); ?>">
...