Wie optimiert man das Schreiben mehrerer ?

WBOY
Freigeben: 2023-03-03 09:22:01
Original
1532 Leute haben es durchsucht

Mehrfach:

<code><?php if ( in_category('10') ) echo'<p class="class1"><span class="icon-home"></span></p>'; ?>
<?php if ( in_category('25') ) echo'<p class="class2"><span class="icon-cat"></span></p>'; ?>
<?php if ( in_category('38') ) echo'<p class="class3"><span class="icon-dog"></span></p>'; ?>
<?php if ( in_category('44') ) echo'<p class="class4"><span class="icon4"></span></p>'; ?>
<?php if ( in_category('50') ) echo'<p class="class5"><span class="icon5"></span></p>'; ?>
<?php if ( in_category('61') ) echo'<p class="class6"><span class="icon6"></span></p>'; ?>
</code>
Nach dem Login kopieren
Nach dem Login kopieren

Wie optimiert man das Schreiben? Vielen Dank

* Erneut bearbeitet, in_category und die folgende Klasse sind tatsächlich unregelmäßig.

Antwortinhalt:

Mehrfach:

<code><?php if ( in_category('10') ) echo'<p class="class1"><span class="icon-home"></span></p>'; ?>
<?php if ( in_category('25') ) echo'<p class="class2"><span class="icon-cat"></span></p>'; ?>
<?php if ( in_category('38') ) echo'<p class="class3"><span class="icon-dog"></span></p>'; ?>
<?php if ( in_category('44') ) echo'<p class="class4"><span class="icon4"></span></p>'; ?>
<?php if ( in_category('50') ) echo'<p class="class5"><span class="icon5"></span></p>'; ?>
<?php if ( in_category('61') ) echo'<p class="class6"><span class="icon6"></span></p>'; ?>
</code>
Nach dem Login kopieren
Nach dem Login kopieren

Wie optimiert man das Schreiben? Vielen Dank

* Erneut bearbeitet, in_category und die folgende Klasse sind tatsächlich unregelmäßig.

<code>for($i=1; $i<7; $i++) {
    if(in_category($i)) {
        echo "<p class=\"class{$i}\"></p>";
    }
}</code>
Nach dem Login kopieren

Ich habe nicht viel Einblick in die Codeoptimierung, daher überlasse ich es anderen Freunden, etwas hinzuzufügen


Update:
Erneut optimiert

<code>$arr = array(
    10=>'<p class="class1"><span class="icon-home"></span></p>',
    25=>'<p class="class2"><span class="icon-cat"></span></p>', 
    38=>'<p class="class3"><span class="icon-dog"></span></p>', 
    44=>'<p class="class4"><span class="icon4"></span></p>', 
    50=>'<p class="class5"><span class="icon5"></span></p>', 
    61=>'<p class="class6"><span class="icon6"></span></p>'
);
function inCatToHtml($arr) {
    while (list($key, $value) = each($arr)) {
        if(in_category($key)) {
            echo $arr[$key];
        }
    }
}
inCatToHtml($arr);</code>
Nach dem Login kopieren

echo kann entsprechend der tatsächlichen Situation optimiert werden und gibt schließlich ein in_category-Array-HTML zurück und verarbeitet es dann einheitlich

<code><?php

foreach(range(1,6) as $categoryNum) {
    if(in_category($categoryNum)) {
        echo '<p class="class"'.$categoryNum.'"></p>';
    }
}</code>
Nach dem Login kopieren

Aber ich finde, dass das Mischen von PHP in HTML sehr gering ist...

Empfohlen

  1. PHP-Vorlagen-Engine.

  2. Die Front-End-Einzelseite oder eine einfache JS-Engine.

======== Puh, der Fragesteller hat es geändert, ich werde es auch ändern ==========

<code><?php

$categoryIcon = [
    10 => 'icon-home',
    ....
];

具体就不写了...和上面一样。</code>
Nach dem Login kopieren

<code><?php
 
$num = count(['1','2','3','4','5','6']);

for( $i=0; $i<$num; $i++ )
{
    if(in_category($num[$i]))
    {
        echo "<p class=class".$i."></p>";
    }
}
?></code>
Nach dem Login kopieren

<code><?php if ($currentCategory = Category::currentCategory()): ?>
<p class="<?=$currentCategory->labelClass?>"><span class="<?=$currentCategory->iconClass?>"></span></p>
<?php endif; ?></code>
Nach dem Login kopieren

Die Präsentationsebene kümmert sich nur um die Leistung, wie viele Kategorien es insgesamt gibt, wie die Kategorie der aktuellen Seite bestimmt wird und welche Klasse jede Kategorie hat und ob Sie planen, eine Datenbank zu erstellen oder eine zu schreiben Bei der Array-Konfiguration ist alles in Go innerhalb der Category-Klasse gekapselt.

Nachdem oben so viel geschrieben wurde, habe ich immer noch das Gefühl, dass die ursprüngliche Schreibmethode des Autors auf einen Blick klar ist

Ich denke, dass es für das Poster angemessener ist, if direkt für die mehrfachen switch Beurteilungsbedingungen zu verwenden. Ich weiß nicht, wie der Code in der in_category-Methode des Posters aussieht, also werde ich diese Methode mutig ändern. Verwenden Sie switch in der Methode:

<code>function in_category( $num ) {
    switch ($num) {
        case '10':
            echo'<p class="class1"><span class="icon-home"></span></p>';
            break;
        case '25':
            echo'<p class="class2"><span class="icon-cat"></span></p>';
            break;
        case '38':
            echo'<p class="class3"><span class="icon-dog"></span></p>';
            break;
        case '44':
            echo'<p class="class4"><span class="icon4"></span></p>';
            break;
        default:
            echo '';
            break;
    }
}</code>
Nach dem Login kopieren

Kann ich einfach in_category( 10 ) direkt?

Angenommen, der Fragesteller versucht herauszufinden, zu welcher Kategorie der Artikel gehört, und gibt ein ICON aus
Dann können Sie zunächst die Kategorie definieren,

<code class="php">$categroies = [
    10=>['class'=>'icon-home'],
    25=>['class'=>'icon-dog'],
    38=>['class'=>'icon-cat'],
    44=>['class'=>'icon4']
    //当然这里的数据可以是从数据库里封装好的
];
//等待输出的html
$html = '';
$class_i = 1;
foreach($categories as $key => $category) {
    if (in_category($key)) {
        $html .= '<p class="class' . ($class_i++) . '"><span class="' . $category['class'] . '"></span></p>';
    }
}
echo $html;</code>
Nach dem Login kopieren

Ich kenne den Zweck von in_category hier nicht. Wenn es darum geht, festzustellen, ob ein Artikel zu einer bestimmten Kategorie gehört und alle Kategorien durchlaufen werden müssen, ist diese Methode ziemlich unlogisch.

Am besten ist es, Vorder- und Rückseite zu trennen

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!