繁体   English   中英

PHP的基于整数的IF语句不显示结果?

[英]php if-statement based on integers is not displaying results?

我正在使用以下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类输出。

有什么建议解决这个问题吗?

编辑:

该类确实已在HTML源代码中输出,但是没有任何效果(并且我的样式表没有被缓存)。 我有该函数的另一个版本,该版本没有在span标签周围添加额外的div,并且该版本可以工作,但不幸的是我需要该div。

如果类名称显示在HTML中,则可以使用PHP代码。 样式表可能是问题所在。

当然..在调用rating_class($thumbs_number);之前添加echo rating_class($thumbs_number);

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

为什么使用额外的仅用于回显的功能? 以下应该可以正常工作。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM