Anonyme Klasse (PHP 7)
Unterstützt jetzt die Instanziierung einer anonymen Klasse durch eine neue Klasse, die verwendet werden kann, um einige „use The“ zu ersetzen vollständige Klassendefinition von „Verbrennung“.
<?php interface Logger { public function log(string $msg); } class Application { private $logger; public function getLogger(): Logger { return $this->logger; } public function setLogger(Logger $logger) { $this->logger = $logger; } } $app = new Application; $app->setLogger(new class implements Logger { public function log(string $msg) { echo $msg; } }); var_dump($app->getLogger()); ?>
Die obige Routine gibt Folgendes aus:
object(class@anonymous)#2 (0) {
}
Closure::call() (PHP 7)
Closure::call() hat jetzt eine bessere Leistung und ist eine kurze und prägnante Möglichkeit, eine Methode vorübergehend an zu binden
<?php class A {private $x = 1;} // Pre PHP 7 code $getXCB = function() {return $this->x;}; $getX = $getXCB->bindTo(new A, 'A'); // intermediate closure echo $getX(); // PHP 7+ code $getX = function() {return $this->x;}; echo $getX->call(new A);
1
Filterung für unserialize() (PHP 7) bereitstellen
<?php // converts all objects into PHP_Incomplete_Class object $data = unserialize($foo, ["allowed_classes" => false]); // converts all objects into PHP_Incomplete_Class object except those of MyClass and MyClass2 $data = unserialize($foo, ["allowed_classes" => ["MyClass", "MyClass2"]); // default behaviour (same as omitting the second argument) that accepts all classes $data = unserialize($foo, ["allowed_classes" => true]);
Gruppenverwendungsdeklarationen (PHP 7)
Das obige ist der detaillierte Inhalt vonEinführung in neue Funktionen wie anonyme Klassen, importierte Klassen und die Verwendung von Schließungen in PHP7. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!