Jeder Applikationsentwickler kennt sie: Konstanten, Variablen, Instanzen und so weiter. Doch was sind “variable Variablen”? Diese möchte ich euch heute vorstellen. Und falls ihr diese schon kennt, sie euch wieder ins Gedächtnis rufen…
Variablen heissen Variablen weil ihr Wert variabel ist. Er sich also ständig ändern kann. Der Bezeichner der Variable bleibt aber immer gleich. Er wurde von uns, den Programmierern, festgelegt.
Mit den “variablen Variablen” ändert sich das. Bei ihnen ist der Bezeichner, also der Name der Variable, nicht festgesetzt, sondern variabel. Man kann also als Bezeichner der neuen Variabel den Wert einer bereits existierenden verwenden. Dies klingt in Worten sehr kompliziert. Desshalb hier ein kleines Beispiel für das bessere Verständniss:
Uff. Der letzte “Funktion der Woche”-Post ist schon über einen Monat alt. Möchte mich da jetzt nicht rausreden. War einfach zu faul um jede Woche zu bloggen…
Wie auch immer. Heute möchte ich euch wieder eine neue Funktion vorstellen oder euch wieder an diese erinnern. Sie heisst “empty()” und macht im Grunde genommen nichts anderes als zu prüfen ob eine Variable leer ist. Was für PHP “leer” bedeuted sehen wir später im Post.
Wolltest du schon immer mal Variablen in deinem CSS-File verwenden und damit rechnen? Oder Funktionen? Dann lies weiter!
Heute möchte ich euch nämlich Sass (“Syntactically Awesome Stylesheets”) vorstellen. Sass ist eine Art Add-On für CSS. Wie jQuery für JavaScript…
Nach einer kleinen Pause möchte ich euch wieder mit einem Funktion-der-Woche-Post beglücken. Diese Woche mit der Funktion nl2br()
nl2br() fügt vor allen Zeilenumbrüchen (z.B. \n) den HTML-Tag für eine neue Zeile ein: <br />
Wofür könnte ich diese Funktion gebrauchen?
Oft brauchte ich nl2br() wenn ich den Inhalt aus einer Textarea auf der Website anzeigen will. Oder aber auch wenn man auf einer Website eine .txt-Datei ausgibt.
Ich gebrauche die Funktion also immer dann, wenn ich einen mehrzeiligen Text direkt auf der Website ausgeben will.
Beispiel
Natürlich darf ein Beispiel nicht fehlen. Nehmen wir mal folgende HTML-Seite:
<?xml version="1.0" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Rückmeldung</title>
</head>
<body>
<form action="rueckmeldung.php" method="POST">
<label for="kommentar">Ihre Rückmeldung:</label> <br />
<textarea name="kommentar" id="kommentar" rows="5" cols="30"></textarea> <br />
<input type="submit" value="Abschicken" />
</form>
</body>
</html>
Wie man sieht sendet das Formular den Inhalt eines mehrzeiligen Textfeldes an das PHP-File “rueckmeldung.php”:
echo "<b>Sie haben uns folgende Rückmeldung geschickt: </b><br />"; echo nl2br($_POST["kommentar"]);
Wenn ihr nun einen mehrzeiligen Text eingebt, wird dieser auch wieder mehrzeilig dargestellt. Wenn ihr das nl2br() rausnehmt, würde alles immer auf einer Zeile ausgegeben…
Das zweite Argument
Man kann diese Funktion auch mit einem optionalen zweiten Parameter aufrufen. Dieser legt fest ob XHTML-kompatible Zeilenumbrüche verwendet werden sollen oder nicht. Es wird ein boolescher Wert erwartet. Also true wenn ein XHTML-kompatibler Zeilenumbruch verwendet werden soll, false wenn nicht. Wenn ihr ihn nicht angebt, werden XHTML-kompatible Zeilenumbrüche verwendet…
Ein XHTML-kompatibler Zeilenumbruch ist übrigens “<br />”. Ein “normaler” Zeilenumbruch wäre “<br>”. Man beachte den Slash vor der schliessenden eckigen Klammer.
Weiterführende Links
Die Funktion array_sum summiert alle Werte in einem Array, und gibt das Resultat zurück. Strings im Array werden in Integer umgewandelt, oder werden ignoriert (je nach PHP-Version).
Wofür könnte ich diese Funktion gebrauchen?
Ich persönlich verwende die Funktion hauptsächlich um den Durchschnitt zu berechnen.
Beispiele
$arr = array(7,2,1,"basdf"); echo array_sum($arr);
Das Ergebniss: 10
Den Durchschnitt berechnen:
$arr = array(7,2,1,15); echo array_sum($arr)/count($arr);
Ergebniss: 6.25
Weiterführende Links
printf()
Diese Funktion gibt einen String aus, im Gegensatz zu “echo” kann man diesen aber formatieren. Und genau deswegen erkläre ich printf() zur Funktion der Woche!
Ich nehme stark an, dass jeder PHP-Programmierer die Funktionen “include()” und “require()” kennt. Doch was ist eigentlich der Unterschied? Viele kennen den nicht, und desshalb schaffen es die Zwei in diesen Post.
Notiz am Rande: Wer tatsächlich nicht weiss, was die Funktionen machen, soll bitte hier nachlesen: http://www.php.net/manual/de/function.include.php
read more…
glob()
Wenn man mit dem Filesystem arbeitet, muss man sich “glob” unbedingt anschauen. ”glob” findet Dateipfade die mit dem angegebenen Muster (pattern) übereinstimmen, und gibt das Resultat als Array zurück.
similar_text()
Mit der Funktion “similar_text” lässt sich die Ähnlichkeit zweier Strings berechnen. Als Rückgabewert erhält man die Anzahl übereinstimmenden Zeichen.
Wenn man eine Variable (als Referenz) als drittes Argument mitgibt, berechnet “similar_text” die Ähnlichkeit als Prozentzahl. read more…
Einleitung
Wie ihr aus dem Titel entnehmen könnt, führe ich die Serie “Funktion der Woche” ein. Jeden Montag, so die Theorie, werde ich eine Funktion vorstellen, die mir aufgefallen ist. Sei das Positiv, oder Negativ. Funktionen die ich als nützlich einstufe, Alternativen, alte, neue und vielleicht auch solche, die man meiner Meinung nach in Zukunft in PHP standardmässig finden sollte…
serialize()
Im Grunde genommen gibt die Funktion “serialize” einfach eine Zeichenkette zurück, die dem ihr übergebenen Wert entspricht. Dieser String kann dann zu einem späteren Zeitpunkt wieder zu dem Wert zurück “verwandelt” werden. Dazu verwendet man “unserialize“.
Das Ganze klingt zuerst sehr unspektakulär, kann aber ganz interessant sein…