PHP war schon immer eine sehr wichtige, schnelle und praktische Entwicklungssprache im Bereich der Webentwicklung und wird von der Mehrheit der Entwickler bevorzugt. Jetzt wurde die offizielle Version von PHP 5.4 veröffentlicht, die viele neue Funktionen hinzufügt. Der Beamte gibt an, dass die Leistung um 20 % verbessert wird und weniger Ressourcen beansprucht. In diesem Artikel führe ich Sie dazu, einige neue Funktionen von PHP 5.4 kennenzulernen.
In PHP 5.4 wurden zunächst mehr als 100 Fehler behoben, die Speicher- und Leistungsoptimierung verbessert und einige Methoden früherer Versionen entfernt, wie z. B. register_globals, magic_quotes, safe_mode, usw., und es sollte beachtet werden, dass in PHP 5.4 die Standardkodierungsmethode auf UTF-8 geändert wurde, was für Entwickler sehr hilfreich ist, um mehrsprachige Versionen von Anwendungen zu entwickeln.
Einführung in Traits
Zunächst stellen wir Traits vor, eine neue Funktion, die in PHP 5.4 hinzugefügt wurde. Tatsächlich wurde diese Funktion auch in anderen Sprachen gesehen. Sie kann einfach als eine Sammlung von Methoden verstanden werden. Die Organisationsstruktur ähnelt in gewisser Weise einer Klasse (kann jedoch nicht wie eine Klasse instanziiert werden), sodass Entwickler unterschiedliche Methoden verwenden können . Verwenden Sie diesen Methodensatz in der Klasse wieder. Da PHP eine Sprache mit einfacher Vererbung ist, kann eine Klasse nicht mehrere Klassen gleichzeitig erben. Zu diesem Zeitpunkt sind Eigenschaften nützlich.
Traits ist eine Sammlung von Lösungen, die keiner tatsächlichen Klasse angehören. Benutzer können keine Trait-Instanzen erstellen oder Methoden in Traits direkt aufrufen. Stattdessen müssen Benutzer Traits in tatsächliche Klassen zusammenführen, um sie verwenden zu können. In Bezug auf die Priorität überschreibt die Trait-Methode die geerbte Methode mit demselben Namen, und die Methode mit demselben Namen in der aktuellen zusammengeführten Klasse überschreibt die Trait-Methode.
Das Folgende ist ein Beispiel, um die Verwendung von Merkmalen zu veranschaulichen. Angenommen, die von uns erstellte Website muss gleichzeitig die APIs von Facebook und Twitter aufrufen. Während des Aufrufvorgangs dieser beiden APIs müssen wir die Curl-Methode aufrufen, um eine Reihe von Vorgängen auszuführen, um den von der Website zurückgegebenen Inhalt abzurufen Um nicht zu verhindern, dass in diesen beiden Klassen dieselbe Methode wiederholt wird, kann dies mithilfe von Traits in PHP 5.4 implementiert werden, wie im folgenden Code gezeigt:
/**cURL-Wrapper-Merkmal*/
Trait cURL
{
public function curl($url)
{
$ch = curl_init(
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return $output; }
}
use cURL; //Call Traits
öffentliche Funktion get($url)
{
return json_decode($this->curl(' http://api.twitter.com/'.$url)
}
} > class Facebook_API
{
use cURL; // Call Traits
public function get($url)
{
return json_decode($this->curl('http://graph.facebook.com/'.$url));
}
}
$facebook = new Facebook_API();
echo $facebook->get('500058753')->name; //Die API wird hier aufgerufen Geben Sie den Facebook-Benutzernamen aus
/**Twitter-API-Klassen*/
echo (neue Facebook_API)->get('500058753')->name; foo = 'get';
echo (new Facebook_API)->$foo('500058753')->name;
echo (new Twitter_API)->get('1 /users/show.json?screen_name=rasmus')-> ;name;
Im obigen Code wird zunächst eine Funktionssammlung über das Schlüsselwort trait definiert, ihr Name ist Curl, Diese enthält eine Methode namens „curl“, die auf dem Parameterwert der URL basiert. Rufen Sie die in PHP integrierte Methode „cur“ auf, um den der URL entsprechenden Seitenausgabeinhalt zurückzugeben. Dann wird in der Klasse Twitter_API und der Klasse Facebook_API
die Verwendung von cURL verwendet, um diese Traits aufzurufen, und in ihren jeweiligen Get-Methoden wird die Curl-Methode in Traits aufgerufen.
Beachten Sie, dass wir im obigen Code zusätzlich zur Verwendung von new Facebook_API() zum Generieren einer Instanz des Facebook-Objekts auch die Verwendung neuer Funktionen in PHP 5.4 demonstrieren, nämlich:
Sie können die Instanz verwenden, wenn Sie auf Klassenmitglieder zugreifen, also:
echo (neue Facebook_API)->get('500058753')->name
$foo = 'get' ;
echo (neue Facebook_API)->$foo('500058753')->name;
Das $foo Der Variablen wird der Wert get zugewiesen. Wenn dann versucht wird, die get-Methode in der Klasse aufzurufen, erfolgt der Aufruf über (new Facebook_API)->$foo('500058753')->name;.
Nehmen wir ein weiteres Beispiel, um die Verwendung von Traits zu veranschaulichen. Dieses Beispiel kann einfacher sein, z. B. den folgenden Code:
Trait Net
{
public function net()
{
return 'Net';
} > Öffentliche Funktion tuts()
{
return 'Tuts'; >
}
🎜> {
use Net, Tuts;
public function plus()
{
return ' '; 🎜>
}
$o = new NetTuts;
echo $o->net(), $o->tuts(), $o-> ;plus( );
echo (neue NetTuts)->net(), (neue NetTuts)->tuts(), (neue NetTuts)->plus(); >
Die oben genannten Ergebnisse werden alle an NetTuts ausgegeben. Übrigens ist die magische Konstante für Merkmale in PHP 5.4 __TRAIT__.
Integrierter Debugging-Server
In der bisherigen PHP-Entwicklung musste es normalerweise in Verbindung mit Apache HTTP Server entwickelt werden. In PHP 5.4 ist ein einfacher Webserver integriert, um Entwicklern die Durchführung der Entwicklungsarbeit ohne komplizierte Konfiguration zu erleichtern. Im Folgenden finden Sie eine Schritt-für-Schritt-Erklärung, wie Sie den integrierten Server in PHP 5.4 verwenden, um relevante Arbeiten in einer Windows-Umgebung auszuführen.
Schritt 1) Erstellen Sie zunächst ein Verzeichnis im Stammverzeichnis von Laufwerk c, nämlich public_html, und erstellen Sie eine router.php-Datei in der Datei. Der Code lautet wie folgt:
< ?php
// router.php
if (preg_match('#.php$#', $_SERVER['REQUEST_URI']))
{
require basename($_SERVER['REQUEST_URI' ]); // PHP-Datei bereitstellen
}
else if (strpos($_SERVER['REQUEST_URI'], '.') !== false)
{
return false; Datei im Ist-Zustand
}
?>
Erstellen Sie dann eine einfache PHP-Datei mit dem Namen index.php wie folgt:
// index.php
echo 'Hallo Nettuts-Leser!';
?> Öffnen Sie dann das Installationsverzeichnis von PHP 5.4 und suchen Sie nach php.ini. und dann include_path Fügen Sie die folgende Zeile hinzu:
include_path = ".;C:phpPEAR;C:public_html"
Schritt 2 Führen Sie den integrierten Webserver aus
Rufen Sie zuerst den Befehlszeilenmodus auf, geben Sie das PHP-Verzeichnis ein und geben Sie den folgenden Befehl ein:
php -S 0.0.0.0:8080 -t C:public_html router.php
Beliebige Maschine angegeben Hier kann darauf zugegriffen werden. Für diesen Server ist Port 8080 angegeben, und die Routing-Datei für die Arbeitsüberwachung wird als Router- und PHP-Datei unter c:public_html angegeben. Nach Eingabe der obigen Befehlszeile und Drücken der Eingabetaste wird die folgende Informationsaufforderung angezeigt
Dies beweist, dass der eingebaute Server korrekt gestartet wurde.
Zu diesem Zeitpunkt können Sie http://localhost:8080/index.php in den Browser eingeben, um darauf zuzugreifen.
Prägnantere Array-Syntax
In PHP 5.4 ist einige Syntaxunterstützung prägnanter, z. B. Deklarationen in Arrays. Jetzt unterstützt
die Verwendung von eckigen Klammern zur Deklaration. wie folgt:
$fruits = array('apples', 'oranges', 'bananas'); // Alte Deklarationsmethode
$fruits = ['apples', 'oranges', 'bananas']; //Neue unterstützte Deklarationsmethode in PHP 5.4
// Neuer assoziativer Array-Zugriff
$array = [
'foo ' => ',
'bar' => 'foo'
];
Natürlich in PHP In 5.4, dem alten Die Array-Deklarationsmethode wird ebenfalls unterstützt.
Direkter Zugriff auf Array-Werte über Funktionsrückgabewerte
In PHP 5.4 wird der direkte Array-Zugriff über Funktionsrückgabewerte unterstützt. Nehmen Sie ein Beispiel:
$tmp = explosion(' ', 'Alan Mathison Turing'); echo $tmp[1]; // Mathison
Wenn es in diesem Beispiel vor PHP 5.4 ist und Sie Mathison in der obigen Zeichenfolge extrahieren möchten, müssen Sie zuerst die Explosionsfunktion verwenden, um den relevanten Wert zurückzugeben, und dann den Wert des Arrays abrufen. In PHP 5.4 können Sie wie folgt direkt auf den Rückgabewert eines Arrays zugreifen:
echo explosion(' ', 'Alan Mathison Turing')[1]
Das ist viel praktischer. Um als weiteres Beispiel den letzten String-Teil Turing hinzuzufügen, um den obigen String zu erhalten, können Sie Folgendes in PHP 5.4 tun:
echo end(explode(' ', 'Alan Mathison Turing')); Geben Sie ein weiteres komplizierteres Beispiel wie folgt:
function foobar()
{
return ['foo' => ['bar' => 'Hello']]
Echo foobar()['foo']['bar']; //Ausgabe Hallo
Der $this-Zeiger kann in Abschlüssen verwendet werden
Zurück In der PHP-Version können Sie den $this-Zeiger nicht in anonymen Methoden (auch Schließungen genannt) verwenden, in PHP 5.4 ist dies jedoch möglich. Das Beispiel lautet wie folgt:
class Foo
{
function hello() {
echo 'Hallo Nettuts!'; 🎜 >
return function() {
$this->hello(); //Dies kann in früheren Versionen nicht erreicht werden
}
}
class Bar = $o->anonymous(); // Eigentlich Foo::hello()
$x(); aufrufen ist Foo::hello()
}
new Bar(new Foo); //Ausgabe Hallo Nettuts!
Die obige Implementierungsmethode ist etwas kompliziert. In PHP 5.4 kann es bequemer wie folgt geschrieben werden:
Function anonym()
{
$that = $this;
return function() use ($that) {
$that->hello();
}
}
Nun, egal Wie das short_tag-Tag in php.ini gesetzt ist, können Sie diese Methode jederzeit im Template verwenden und so diese Methode ersetzen. Verwenden Sie das Präfix „0b“, um Binärzahlen zu identifizieren. Wenn Sie nun Binärzahlen verwenden möchten, fügen Sie bitte das Präfix 0b voran, z. B.:
echo 0b11111
Erweiterung des Funktionstyps hints
Da PHP eine schwach typisierte Sprache ist, wurde die Funktion „hint“ nach PHP 5.0 eingeführt, was bedeutet, dass alle an die Funktion übergebenen Parameter einer Typprüfung unterzogen werden. Es gibt beispielsweise die folgenden Klassen:
class bar {
}
function foo(bar $foo) { Der übergebene Parameter muss eine Instanz der bar-Klasse sein, sonst macht das System einen Fehler. In ähnlicher Weise kann auch für Arrays eine Beurteilung vorgenommen werden, wie zum Beispiel:
function foo(array $foo) {
}
foo(array(1, 2, 3) ); // Richtig, weil das Array
foo(123); // Falsch, das Array
wird in PHP 5.4 unterstützt aufrufbare Typen werden unterstützt. Wenn wir in der Vergangenheit wollten, dass eine Funktion eine Rückruffunktion als Parameter akzeptiert, mussten wir viel zusätzliche Arbeit leisten, um zu überprüfen, ob es sich um die richtige aufrufbare Funktion handelt. Das Beispiel lautet wie folgt:
Funktion foo(callable $callback) {
}
Dann:
foo("false"); //Fehler, weil false kein Callable ist type
foo("printf"); //Richtig
foo(function(){}); //Richtig
class A {
statische Funktion show() {
}
}
foo(array("A", "show")); //Richtig
Entschuldigung Ja, in PHP 5.4 werden Typhinweise für Basistypen wie Zeichen, Ganzzahlen usw. immer noch nicht unterstützt.
Verbesserung der Zeitstatistik
In PHP 5.4 wird $_SERVER['REQUEST_TIME_FLOAT'] neu hinzugefügt und wird in ms ausgedrückt praktisch für Entwickler, wie zum Beispiel:
echo 'skriptausführungszeit', rund(microtime(true) - $_SERVER['REQUEST_TIME_FLOAT'], 2), 's';
Dieser Artikel fasst einige neue Funktionen in PHP 5.4 kurz zusammen. Es ist ersichtlich, dass die offensichtlicheren Funktionsverbesserungen in PHP 5.4 hauptsächlich Merkmale und integrierter Debugging-Server, UTF-8-Standardunterstützung usw. sind. Detaillierte Einführung Informationen zu neuen Funktionen finden Sie im PHP 5.4-Benutzerhandbuch.