Cet article présente principalement les nouvelles fonctionnalités des fonctions php7, les déclarations, les valeurs de retour et d'autres nouvelles fonctionnalités. Il est très bon et a une certaine valeur de référence. Les amis qui en ont besoin peuvent s'y référer
Utiliser. ... Opérateurs pour définir des variables Fonctions de paramètres longs (PHP 5 >= 5.6.0, PHP 7)
Vous pouvez désormais utiliser l'opérateur... pour implémenter des fonctions de paramètres de longueur variable sans compter sur func_get_args( ).
<?php function f($req, $opt = null, ...$params) { // $params 是一个包含了剩余参数的数组 printf('$req: %d; $opt: %d; number of params: %d'."\n", $req, $opt, count($params)); } f(1); f(1, 2); f(1, 2, 3); f(1, 2, 3, 4); f(1, 2, 3, 4, 5); ?>
La routine ci-dessus affichera :
$req: 1; $opt: 0; number of params: 0 $req: 1; $opt: 2; number of params: 0 $req: 1; $opt: 2; number of params: 1 $req: 1; $opt: 2; number of params: 2 $req: 1; $opt: 2; number of params: 3
Utiliser... l'opérateur pour l'expansion des paramètres (PHP 5 > = 5.6.0, PHP 7)
Lors de l'appel d'une fonction, utilisez l'opérateur... pour développer les tableaux et les objets traversables en paramètres de fonction. Dans d'autres langages de programmation, comme Ruby, cela s'appelle l'opérateur de concaténation.
<?php function add($a, $b, $c) { return $a + $b + $c; } $operators = [2, 3]; echo add(1, ...$operators); ?>
La routine ci-dessus affichera :
6
utiliser la fonction et utiliser const (PHP 5 >= 5.6.0, PHP 7) L'opérateur
use a été étendu pour prendre en charge l'importation de fonctions externes et de constantes dans les classes. Les structures correspondantes sont use function et use const.
<?php namespace Name\Space { const FOO = 42; function f() { echo FUNCTION."\n"; } } namespace { use const Name\Space\FOO; use function Name\Space\f; echo FOO."\n"; f(); } ?>
La routine ci-dessus affichera :
42 Name\Space\f
debugInfo() (PHP 5 >= 5.6. 0, PHP 7)
Ajoutez debugInfo(), qui peut être utilisé pour contrôler les attributs et les valeurs à afficher lors de l'utilisation de var_dump() pour afficher des objets.
<?php class C { private $prop; public function construct($val) { $this->prop = $val; } public function debugInfo() { return [ 'propSquared' => $this->prop ** 2, ]; } } var_dump(new C(42)); ?>
La routine ci-dessus affichera :
object(C)#1 (1) { ["propSquared"]=> int(1764) }
Déclaration de type scalaire (PHP 7)
La déclaration de type scalaire a deux modes : obligatoire (par défaut) et mode strict. Les paramètres de type suivants sont désormais disponibles (en mode forcé ou strict) : string, int, float et bool. Ils étendent d'autres types introduits dans PHP5 : noms de classes, interfaces, tableaux et types de rappel.
<?php // Coercive mode function sumOfInts(int ...$ints) { return array_sum($ints); } var_dump(sumOfInts(2, '3', 4.1));
La routine ci-dessus affichera :
int(9)
Pour utiliser le mode strict, une directive de déclaration doit être placée à la fin du haut du fichier. Cela signifie que les scalaires sont strictement déclarés configurables sur la base d'un fichier. Cette directive affecte non seulement la déclaration de type des paramètres, mais affecte également la déclaration de valeur de retour des fonctions (voir déclaration de type de valeur de retour, fonctions PHP intégrées et fonctions PHP chargées dans les extensions)
Valeur de retour déclaration de type ( PHP 7)
PHP 7 ajoute la prise en charge des déclarations de type de retour. Semblable à la déclaration de type de paramètre, la déclaration de type de retour spécifie le type de valeur de retour de la fonction. Les types disponibles sont les mêmes que ceux disponibles dans la déclaration des paramètres.
<?php function arraysSum(array ...$arrays): array { return array_map(function(array $array): int { return array_sum($array); }, $arrays); } print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));
La routine ci-dessus affichera :
Array ( [0] => 6 [1] => 15 [2] => 24 )
opérateur de coalescence nul (PHP 7)
En raison d'un grand nombre de situations où les expressions ternaires et isset() sont utilisées simultanément dans l'utilisation quotidienne, nous avons ajouté la syntaxe de l'opérateur de coalescence nul (??) sucre. Si la variable existe et n'est pas NULL, elle renvoie sa propre valeur, sinon elle renvoie son deuxième opérande.
<?php // Fetches the value of $_GET['user'] and returns 'nobody' // if it does not exist. $username = $_GET['user'] ?? 'nobody'; // This is equivalent to: $username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; // Coalesces can be chained: this will return the first // defined value out of $_GET['user'], $_POST['user'], and // 'nobody'. $username = $_GET['user'] ?? $_POST['user'] ?? 'nobody'; ?>
Opérateur de vaisseau spatial (comparateur combiné) (PHP 7)
Opérateur de vaisseau spatial Utilisé pour comparer deux expressions . Il renvoie -1, 0 ou 1 lorsque $a est respectivement inférieur, égal ou supérieur à $b. Le principe de comparaison suit les règles de comparaison habituelles de PHP.
<?php // Integers echo 1 <=> 1; // 0 echo 1 <=> 2; // -1 echo 2 <=> 1; // 1 // Floats echo 1.5 <=> 1.5; // 0 echo 1.5 <=> 2.5; // -1 echo 2.5 <=> 1.5; // 1 // Strings echo "a" <=> "a"; // 0 echo "a" <=> "b"; // -1 echo "b" <=> "a"; // 1 ?>
Définir des tableaux de constantes via finish() (PHP 7)
Les constantes de type Array peuvent désormais être défini via finish(). En PHP5.6, il ne peut être défini que via const.
<?php define('ANIMALS', [ 'dog', 'cat', 'bird' ]); echo ANIMALS[1]; // outputs "cat" ?>
Recommandations associées :
Explication détaillée de la façon d'activer Opcode dans PHP7 pour créer des performances puissantes
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!