Gunnar Bittersmann: PHP function: Wie umgehe ich, dass eine Variable jedes Mal erneut definiert werden muss?

Beitrag lesen

@@borisbaer

if (!empty($_GET['subpage'])) { $current = $_GET['subpage']; }

Das tue ich, weil ich im Folgenden diese Variable benötige, nämlich bspw. an dieser Stelle:

<a class="<?= $current === 'releases' ? 'current' : ''; ?>" href="releases">Releases</a>

Das Umkopieren von $_GET['subpage'] in eine Variable macht keinen Sinn. Du verwendest einfach bei jedem Vergleich $_GET['subpage'] und gut ist.

Wenn also der aktuelle URL-Parameter mit dem jeweiligen if clause für $current übereinstimmt, dann bekommt dieser Link die class current, wird also hervorgehoben.

Verwende aria-current="page".

Eine Klasse current brauchst du dann nicht; du kannst den Attributselektor [aria-current="page"] zum Stylen verwenden. (Ein Klassenselektor ist auch nur eine andere Schreibweise für einen Attributselektor.)

Was du nicht tun solltest: die aktuelle Seite verlinken. Stattdessen den Link auf den Hauptinhalt setzen (also genau dorthin, wo auch der Skip-Link hinführt).

Live und in Schwarz/Weiß zu sehen, wo nie ein Mensch zuvor gewesen ist. Das PHP-Script, das die Seiten generiert, kann man sich auch ansehen.

Ich hab letztens was darüber erzählt, zu sehen ist das auf Folie 7.

Wenn es dir nicht behagt, wiederholt $_GET['subpage'] zu verwenden und damit immer wieder dasselbe zu tun, kannst du das auch mit einer Schleife machen; so in etwa:

<?php
$subpages = [
  [ 'title' => 'Spiel', 'path' => 'game' ],];
?>

<nav>
  <ul>
<?php foreach ($subpages as $subpage): ?>
    <li>
      <a
  <?php if ($subpage['path'] == $_GET['subpage']): ?>
        href="#main"
        aria-current="page"
  <?php elseif: ?>
        href="$subpage['path']"
  <?php endif; ?>
      >
        <?php echo htmlspecialchars($subpage['title']); ?>
      </a>
    </li>
<?php endforeach; ?>
  </ul>
</nav>

🖖 Живіть довго і процвітайте

--
When the power of love overcomes the love of power the world will know peace.
— Jimi Hendrix
0 60

PHP function: Wie umgehe ich, dass eine Variable jedes Mal erneut definiert werden muss?

borisbaer
  • php
  1. 0
    Rolf B
    1. 0
      borisbaer
      1. 1
        Raketenwilli
        • php
        • programmiertechnik
        • programmplanung
        1. 0
          borisbaer
          1. 0
            Raketenwilli
            1. 0
              borisbaer
              1. 0
                Raketenwilli
                1. 0
                  borisbaer
                  1. 0
                    borisbaer
                    1. 0
                      Raketenwilli
                      1. 0
                        borisbaer
                        1. 1

                          PHP-Syntax: Anführungszeichen

                          Gunnar Bittersmann
                          • php
                          1. 0
                            Der Martin
                            • programmierstil
                            • syntax
                            1. 1
                              Raketenwilli
                              1. 0
                                Der Martin
                              2. 0

                                Mein höchstpersönlicher Monk bricht aus mir heraus

                                Auge
                                • menschelei
                                • programmierstil
                                • syntax
                                1. 0
                                  Gunnar Bittersmann
                                  • menschelei
                                  1. 0
                                    Auge
                                2. 0
                                  Raketenwilli
                              3. 0
                                borisbaer
                            2. 0
                              Gunnar Bittersmann
                          2. 0
                            borisbaer
                        2. 0
                          Tabellenkalk
                          1. 0
                            Raketenwilli
                          2. 1
                            Gunnar Bittersmann
                            • php
                            • programmierstil
                            1. 0
                              Tabellenkalk
                              1. 0
                                Gunnar Bittersmann
                            2. 0
                              borisbaer
                              1. 0

                                Sollte, hyperliquide Prüfung

                                Raketenwilli
                                1. 0
                                  Raketenwilli
                                  1. 0
                                    Rolf B
                                    1. 1
                                      Raketenwilli
                                2. 0
                                  borisbaer
                                  1. 0
                                    Raketenwilli
                                    1. 0
                                      Rolf B
                                      1. 0
                                        Raketenwilli
                                        1. 0
                                          Rolf B
                                        2. 0
                                          Der Martin
                                          • dateisystem
                                          • meinung
                                          1. 0
                                            Gunnar Bittersmann
                                            • cms
                                            • dateisystem
                                      2. 0
                                        borisbaer
                              2. 1
                                Rolf B
                                1. 0
                                  borisbaer
                                  1. 0
                                    Rolf B
                                    1. 0
                                      Tabellenkalk
                                    2. 0
                                      Der Martin
                                      • menschelei
                        3. 1
                          Rolf B
                          1. 0
                            Der Martin
    2. 0
      Der Martin
      1. 0
        borisbaer
        1. 0
          Der Martin
          1. 0
            borisbaer
            1. 0
              Der Martin
              1. 0
                Rolf B
        2. 1
          Gunnar Bittersmann
          • aria
          • php
          1. 1
            Gunnar Bittersmann
            • php
            • sicherheit
          2. 0
            borisbaer
            1. 0
              Gunnar Bittersmann
  2. 0
    Rolf B
    1. 0
      Gunnar Bittersmann
      • barrierefreiheit