Hallo liebewinter,
Dein Code ist nicht geeignet um Dein Ziel zu erreichen. Daran ist praktisch alles logisch falsch. Ich habe die Klasse und deren Verwendung also mal völlig neu geschrieben.
Du solltest das durcharbeiten und Du solltest uns für jede Zeile erklären, was in dieser Zeile geschieht.
Grund: Ich habe den Eindruck, dass Du ohne jede Vorstellung davon, was Du da eigentlich machst, Code notierst und Dich dann wunderst, dass Dein Skript nicht das erwartete Resultat zeigt. Das beginnt schon bei den von Dir gewählten Namen welche verwirrend (also: nicht logisch) sind.
<?php
class NavigationLinkList {
private $current_page;
private $arLinks;
public function __construct( $arNewLinks = false ) {
$this -> arLinks = [];
$this -> addLinks ( $arNewLinks );
$this -> current_page = $_SERVER['REQUEST_URI'];
}
public function addLinks ( $arNewLinks ) {
$flagErrors = false;
if ( isset( $arNewLinks['URL'] ) && isset( $arNewLinks['TEXT'] ) ) {
array_push( $this -> arLinks, $arNewLinks );
return true;
}
if ( is_array ( $arNewLinks ) ) {
foreach ( $arNewLinks as $NewLink ) {
if ( isset( $NewLink['URL'] ) && isset( $NewLink['TEXT'] ) ) {
array_push( $this -> arLinks, $NewLink );
}
}
} else {
$flagErrors = true;
}
return false == $flagErrors;
}
public function printNav() {
echo '
<nav class="link_wechsel">
<h2 class="visually-hidden">Page navigation</h2>
<ul>' . PHP_EOL;
foreach ( $this -> arLinks as $link ) {
if ( $this -> current_page == $link['URL'] ) {
$aria = ' aria-current="page"';
} else {
$aria = '';
}
echo ' <li><a' . $aria . ' href=' . $link['URL'] .'">' . $link['TEXT'] . '</a></li>' . PHP_EOL;
}
echo '
</ul>
</nav>' . PHP_EOL;
}
}
###############################
# Usage/Tests: #
###############################
#/*
$_SERVER['REQUEST_URI'] = '/page1.php';
echo "Version 1:\n";
$navListe = new NavigationLinkList( [ ['URL' => '/page1.php', 'TEXT' => '1'], ['URL' => '/page2.php', 'TEXT' => '2'] ] );
$navListe -> printNav();
echo "\n-------------------------------------------------------------\n";
echo "Version 2:\n";
$navListe = new NavigationLinkList();
$navListe -> addLinks( [ ['URL' => '/page1.php', 'TEXT' => '1'], ['URL' => '/page2.php', 'TEXT' => '2'] ] );
$navListe -> printNav();
echo "\n-------------------------------------------------------------\n";
echo "Version 3:\n";
$navListe = new NavigationLinkList();
$navListe -> addLinks( [ 'URL' => '/page1.php', 'TEXT' => '1' ] );
$navListe -> addLinks( [ 'URL' => '/page2.php', 'TEXT' => '2' ] );
$navListe -> printNav();
echo "\n-------------------------------------------------------------\n";
#*/
Ausgaben:
tmp$ php test.php
Version 1:
<nav class="link_wechsel">
<h2 class="visually-hidden">Page navigation</h2>
<ul>
<li><a aria-current="page" href=/page1.php">1</a></li>
<li><a href=/page2.php">2</a></li>
</ul>
</nav>
-------------------------------------------------------------
Version 2:
<nav class="link_wechsel">
<h2 class="visually-hidden">Page navigation</h2>
<ul>
<li><a aria-current="page" href=/page1.php">1</a></li>
<li><a href=/page2.php">2</a></li>
</ul>
</nav>
-------------------------------------------------------------
Version 3:
<nav class="link_wechsel">
<h2 class="visually-hidden">Page navigation</h2>
<ul>
<li><a aria-current="page" href=/page1.php">1</a></li>
<li><a href=/page2.php">2</a></li>
</ul>
</nav>
-------------------------------------------------------------