PHP在错误的位置输出代码

mat*_*ttz 0 php wordpress pagination

我有这个代码,为幻灯片显示创建导航.它的工作正常,只是其中一个变量将代码呈现在错误的位置.正如你在下面看到的那样$imgCount(3个中的3个)应该在里面<div class="next-prev"> </div>然而它在这个div之前出现了.

为什么它会在它内部编码的div之外移动?

这是我期望它输出的方式:

<div class="slideshow-nav">
    <div>
         <div class="next-prev">
             <a href="/slideshow-one/2/">&larr; Previous  3 of 3  </a><a href="../">Back to Slide One</a>
         </div>  
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

以下是输出方式:

<div class="slideshow-nav">
    <div>3 of 3
         <div class="next-prev">
             <a href="/slideshow-one/2/">&larr; Previous  </a><a href="../">Back to Slide One</a>
         </div>  
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这是设置它的代码:

<div class="slideshow-nav">
    <div class="img-count">
        <?php function img_count() {
            global $page, $numpages;
            echo "$page of $numpages"; 
            } ?>
      </div>
     <div>
        <?php 
            global $page, $numpages;
                    $imgCount = img_count();
                if ($page < 2)
                    $next = '<span class="start-ss">Go</span>';
                else
                    $next = ' Next &rarr;';
                if ($page == $numpages)
                    $previous = '&larr; Previous  ' .$imgCount. ' <a href="../">Back to Slide One</a>';
                else
                    $previous = '&larr; Previous  ...';
            wp_link_pages(      
                array(
                'before' => '<div class="next-prev">',
                'after' => '</div>',
                'next_or_number' => 'next',
                'nextpagelink' => $next,
                'previouspagelink' => $previous,
                )); 
            ?>  
       </div>
</div>
Run Code Online (Sandbox Code Playgroud)

El *_*obo 6

更改echoreturn你的功能,如

function img_count() {
    global $page, $numpages;
    return "$page of $numpages"; 
}
Run Code Online (Sandbox Code Playgroud)

  • `echo`立即输出字符串(这就是为什么它出现在你调用函数的同一位置的输出中),*不能*分配给字符串(不使用输出缓冲,但你不需要目前).`return`将该字符串设置为**可以*赋值给函数的返回值. (3认同)