PHP function: Wie umgehe ich, dass eine Variable jedes Mal erneut definiert werden muss?
bearbeitet von
> HTML-Klassen, denen man mit CSS ein Aussehen verpasst. Mit PHP hat das erst mal nur sehr wenig zu tun, außer dass man die Klassennamen natürlich in PHP vergeben kann.
Ach so, na ja, HTML-Klassen und CSS sind nichts Neues für mich. Deswegen dachte ich, du meinst Klassen in PHP. Ich bin gerade dabei, PHP-Templates zu erstellen.
Eine Sache noch: Irgendwie funktioniert der Teil deines Codes nicht, der einen leeren URL-Parameter handhaben soll:
~~~ PHP
<?php
function navAnchor( $href, $name ) {
$current = '';
if ( !empty( $_GET['subpage'] ) )
if ( $href === $_GET['subpage'] )
$current = 'aria-current="page" ';
else
if ( $href === 'game' )
$current = 'aria-current="page" ';
echo '<a ' . 'href="' . $href . '"' . $current . '>' . $name . '</a>';
}
?>
<nav id="page">
<?php
$subpages = $_SERVER['DOCUMENT_ROOT'] . '/pages/' . $uri[1] . '/' . $uri[2] . '/subpages/';
if ( file_exists( $path = $subpages . 'game.php' ) ) navAnchor( 'game', 'Spiel' );
if ( file_exists( $path = $subpages . 'releases.php' ) ) navAnchor( 'releases', 'Releases' );
if ( file_exists( $path = $subpages . 'merchandise.php' ) ) navAnchor( 'merchandise', 'Me<span style="letter-spacing: .115em;">r</span>cha<span style="letter-spacing: .105em;">n</span>dise' );
if ( file_exists( $path = $subpages . 'guides.php' ) ) navAnchor( 'guides', '<span style="letter-spacing: .105em;">Gu</span>ides' );
if ( file_exists( $path = $subpages . 'emulation.php' ) ) navAnchor( 'emulation', 'Emula<span style="letter-spacing: .115em;">t</span>ion' );
if ( file_exists( $path = $subpages . 'mods.php' ) ) navAnchor( 'mods', 'Mods' );
if ( file_exists( $path = $subpages . 'maps.php' ) ) navAnchor( 'maps', 'Maps' );
if ( file_exists( $path = $subpages . 'savegame.php' ) ) navAnchor( 'savegame', 'S<span style="letter-spacing: .105em;">a</span>vegame' );
?>
</nav>
~~~
**/games/demons-souls/** sollte ja eigentlich `$current` bei `'game'` setzen, wenn `empty( $_GET['subpage']`. Ich sehe allerdings keinen Fehler in der Logik des Codes.