Kod incelemesi - PHP sözdizimi hatası beklenmedik $ end

5 Cevap php

Hey çocuklar! Ben bir sözdizimi hatası (beklenmeyen $ sonu) elde tutmak, ve ben bu kod yığın onu izole ettik. Ben bana yaşam için herhangi bir kapatma sorunları göremiyorum. Muhtemelen belirgin bir şey ama ben onu bulmaya çalışıyorum ceviz gidiyorum. Gözleri bir ek set seviniriz.

function generate_pagination( $base_url, $num_items, $per_page, $start_item, $add_prevnext_text = TRUE )
    {
        global $lang;
        if ( $num_items == 0 )
        {
        }
        else
        {
            $total_pages = ceil( $num_items / $per_page );
            if ( $total_pages == 1 )
            {
                return "";
            }
            $on_page = floor( $start_item / $per_page ) + 1;
            $page_string = "";
            if ( 8 < $total_pages )
            {
                $init_page_max = 2 < $total_pages ? 2 : $total_pages;
                $i = 1;
                for ( ; $i < $init_page_max + 1; ++$i )
                {
                    $page_string .= $i == $on_page ? "<font face='verdana' size='2'><b>[{$i}]</b></font>" : "<a href=\"".$base_url."&amp;offset=".( $i - 1 ) * $per_page."\">{$i}</a>";
                    if ( $i < $init_page_max )
                    {
                        $page_string .= ", ";
                    }
                }
                if ( 2 < $total_pages )
                {
                    if ( 1 < $on_page && $on_page < $total_pages )
                    {
                        $page_string .= 4 < $on_page ? " ... " : ", ";
                        $init_page_min = 3 < $on_page ? $on_page : 4;
                        $init_page_max = $on_page < $total_pages - 3 ? $on_page : $total_pages - 3;
                        $i = $init_page_min - 1;
                        for ( ; $i < $init_page_max + 2; ++$i )
                        {
                            $page_string .= $i == $on_page ? "<font face='verdana' size='2'><b>[{$i}]</b></font>" : "<a href=\"".$base_url."&amp;offset=".( $i - 1 ) * $per_page."\">{$i}</a>";
                            if ( $i < $init_page_max + 1 )
                            {
                                $page_string .= ", ";
                            }
                        }
                        $page_string .= $on_page < $total_pages - 3 ? " ... " : ", ";
                    }
                    else
                    {
                        $page_string .= " ... ";
                    }
                    $i = $total_pages - 1;
                    for ( ; $i < $total_pages + 1; ++$i )
                    {
                        $page_string .= $i == $on_page ? "<font face='verdana' size='2'><b>[{$i}]</b></font>" : "<a href=\"".$base_url."&amp;offset=".( $i - 1 ) * $per_page."\">{$i}</a>";
                        if ( $i < $total_pages )
                        {
                            $page_string .= ", ";
                        }
                    }
                    continue;
                }
            }
            else
            {
                do
                {
                    $i = 1;
                    for ( ; $i < $total_pages + 1; ++$i)

                {
                    $page_string .= $i == $on_page ? "<font face='verdana' size='2'><b>[{$i}]</b></font>" : "<a href=\"".$base_url."&amp;offset=".( $i - 1 ) * $per_page."\">{$i}</a>";
                    if ( $i < $total_pages )
                    {
                        $page_string .= ", ";
                        break;
                    }
                } 
            } while (0);
            if ( 1 < $on_page )
            {
                $page_string = " <font size='2'><a href=\"".$base_url."&amp;offset=".( $on_page - 2 ) * $per_page."\">"."&laquo;"."</a></font>&nbsp;&nbsp;".$page_string;
            }
            if ( $on_page < $total_pages )
            {
                $page_string .= "&nbsp;&nbsp;<font size='2'><a href=\"".$base_url."&amp;offset=".$on_page * $per_page."\">"."&raquo;"."</a></font>";
            }
            $page_string = "Pages ({$total_pages}):"." ".$page_string;
            return $page_string;
        }
    }

5 Cevap

Kod etrafında while (0); if (1 < $on_page) Bana yanlış gibi görünüyor izledi. Bir bakışta else kapalı değil gibi görünüyor. Eğer kodu php -l (tüysüz) denediniz mi?

Kodunuzu son satırında bir } koyun. Siz sadece fonksiyonun gövdesini kapanış değildir.

Of course it could also be that you are missing a closing bracket somewhere in between.
But as we don't know how the code works (i.e. we don't know when which block should be executed), you should intend it correctly from the beginning and look over it again.

Sen işlevi vücudu kapatmak için dosyanın sonunda bir } gerekir.

Sen eksik bir } hat 65 üzerinde başlayan yapmak deyimi kapanış.

Bunu onarmak için aşağıdaki metin ile bu ifadeyi değiştirin.

do
{
    $i = 1;
    for ( ; $i < $total_pages + 1; ++$i)
    {
        $page_string .= $i == $on_page ? "<font face='verdana' size='2'><b>[{$i}]</b></font>" : "<a href=\"".$base_url."&amp;offset=".( $i - 1 ) * $per_page."\">{$i}</a>";
        if ( $i < $total_pages )
        {
            $page_string .= ", ";
            break;
        }
    }
} while (0);

yapmak içinde senin girinti ... (0) kodu kapalı iken. Eğer döngü için bakarsanız, bunun içinde her şeyi olması gerektiği birden girinti az olduğunu fark edeceksiniz.

Bu girinti ekleyin ve ne diğerleri (dosyanın sonunda} ekstra) belirtilen sorun olduğunu görürsünüz.