Maison > Article > développement back-end > Introduction aux nouvelles fonctionnalités telles que les classes anonymes, les classes importées et l'utilisation de la fermeture dans php7
Classe anonyme (PHP 7)
Prend désormais en charge l'instanciation d'une classe anonyme via une nouvelle classe, qui peut être utilisée pour remplacer certaines "utilisations" définition de classe complète de « Incinération ».
<?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()); ?>
La routine ci-dessus affichera :
object(class@anonymous)#2 (0) {
}
Closure::call() (PHP 7)
Closure::call() a désormais de meilleures performances, lie de manière concise et temporaire une méthode à Objet et appelez-le.
<?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);La routine ci-dessus affichera : 1
1
Fournir un filtrage pour unserialize() (PHP 7)
<?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]);
Déclarations d'utilisation de groupe (PHP 7)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!