dedlfix: Variablen im Vergleich, welcher Kontext?

Beitrag lesen

echo $begrüßung;

wenn ich beispielsweise eine beliebige Variable mit $_SERVER['REQUEST_URI'] vergleiche, nur vergleiche, keine Ausgabe, in welchem Kontext muss ich $_SERVER['REQUEST_URI'] behandeln?

Wenn du nach dem EVA-Prinzip vorgehst, hast du deine Eingabewerte bereits aus ihrem Transportkontext befreit, soweit das nötig war, und nun die Daten in Rohform vorliegen. In dem Zustand kann man sie einfach so vergleichen.

Nehmen wir folgendes Beispiel:
$aktuelle_seite = array_key_exists($_SERVER['REQUEST_URI'], $links_array) ? $_SERVER['REQUEST_URI'] : 'Kein Ergebnis';
Wie verarbeitet PHP das $_SERVER['REQUEST_URI'] in diesem Vergleich?

Genauso, wie du »Äpfel« mit »Birnen« vergleichen würdest: Zeichen für Zeichen. (Zeichenkodierungsproblematik mal außen vor gelassen.)

Muss ich hier encoden, decoden oder sonst irgendwas beachten?

Nichts dergleichen. Sowohl in $links_array (vermutlich von dir gefüllt) als auch im $_SERVER-Array (von PHP gefüllt - hier sind auch keine störenden Magic Quotes drin) stehen die Daten in Rohform drin. Wenn das für $links_array nicht zutrifft, machst du einen Fehler.

So, nehmen wir jetzt an, der vergleich war erfolgreich, array_key existiert, jetzt habe ich in der Variable $aktuelle_seite = $_SERVER['REQUEST_URI'];, muss ich jetzt im restlichen Scriptverlauf die Variable $aktuelle_seite gesondert behandeln/Maskieren oder kann ich diese Variable nun frei nutzen?

Solange du im Kontext PHP-Script bleibst ist nichts weiter erforderlich. Erst wenn du wieder zur Ausgabe - wohin auch immer - schreitest, ist eine Behandlung für den neuen Kontext erforderlich.

echo "$verabschiedung $name";