繁体   English   中英

无法在PHP中比较两个相同的字符串?

[英]Cannot compare two identical strings in PHP?

我在这段代码上停留了6个小时。 我究竟做错了什么?

我似乎无法比较两个字符串the_title()的值以及直接在IF语句中的普通字符串或来自不同变量的相同字符串的值。 该IF语句不起作用。 我用==,===和strcmp()都尝试过,但是什么也没做,它只是拒绝承认两个字符串确实是相同的(我已经打印了几次,而且它们匹配)。 有什么想法吗?

<?php

    $args = array( 'post_type' => 'team', 'showposts' => -1 );

    $items = new WP_Query( $args ); 

    while ($items->have_posts()) : $items->the_post();
        $title = the_title(); // one of the titles in the while loop is indeed "Jon Snow"
        $comp = 'Jon Snow';

        if ( $title === $comp ){
          echo 'Success!';
        }
    endwhile;  
    wp_reset_query(); 
?>

哦,每当IF语句不起作用时,系统只会在while循环中打印出所有the_title()值。

哦,每当IF语句不起作用时,系统只会在while循环中打印出所有the_title()值。

您已经回答了自己的问题。 默认情况下, the_title()打印帖子的标题。 要比较标题,您首先必须将其保存在变量中,然后进行比较。

the_title()接受3个参数,而第3个参数(FALSE)将获取标题作为返回值,而不仅仅是打印它。 第三个参数默认情况下为TRUE,并在页面上打印标题。

这就是您可以做到的。

<?php $posttitle=the_title( '', '', FALSE); ?>

暂无
暂无

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

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