Maison > Article > développement back-end > Explication détaillée de l'utilisation des nouvelles fonctionnalités de php7
Cette fois, je vais vous apporter une explication détaillée sur la façon d'utiliser les nouvelles fonctionnalités de php7. Quelles sont les précautions pour utiliser les nouvelles fonctionnalités de php7. Voici des cas pratiques, jetons un coup d'oeil.
Utilisez l'opérateur... pour définir des fonctions d'argument de longueur variable (PHP 5 >= 5.6.0, PHP 7)
Vous pouvez désormais utiliser l'opérateur... sans compter sur func_get_args() Pour implémenter une fonction de paramètre de longueur variable.
<?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 ; 2 ; nombre de paramètres : 0
Utiliser... l'opérateur pour l'expansion des paramètres (PHP 5 >= 5.6.0, PHP 7)
$req : 1 ; $opt : 2 ; nombre de paramètres : 1
$req : 1 ; ; $opt : 2 ; nombre de paramètres : 3
lors de l'appel de When à l'aide de fonctions, 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.
La routine ci-dessus affichera :<?php function add($a, $b, $c) { return $a + $b + $c; } $operators = [2, 3]; echo add(1, ...$operators); ?>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 et de constantes externes dans les classes. Les structures correspondantes sont use function et use const.
La routine ci-dessus affichera :<?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(); } ?>42
debugInfo() (PHP 5 >= 5.6.0, PHP 7)NameSpacef
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.
La routine ci-dessus affichera :<?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)); ?>
object(C)#1 (1) { ["propSquared"]=> int(1764) }Déclaration de type scalaire (PHP 7)
Il existe deux modes pour le type scalaire déclaration : Application (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 rappelLa routine ci-dessus affichera :<?php // Coercive mode function sumOfInts(int ...$ints) { return array_sum($ints); } var_dump(sumOfInts(2, '3', 4.1));int(9)
Pour utiliser le mode strict, une directive de déclaration doit être placée dans le dossier du dessus. 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 également la déclaration de valeur de retour de la fonction(voir déclaration de type de valeur de retour, fonctions PHP intégrées et fonctions PHP chargées dans les extensions)
Déclaration de type de valeur de retour (PHP 7)
PHP 7 ajoute la prise en charge de la déclaration 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.
La routine ci-dessus affichera :
<?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]));opérateur de coalescence nul (PHP 7)
Array ( [0] => 6 [1] => 15 [2] => 24 )
En raison du grand nombre de Quand en utilisant des expressions ternaires et isset() en même temps, nous ajoutons le sucre syntaxique de l'opérateur de coalescence nul (??). Si la variable existe et n'est pas NULL, elle renvoie sa propre valeur, sinon elle renvoie son deuxième opérande.
Opérateur de vaisseau spatial (opérateur de comparaison combiné) (PHP 7)<?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'; ?>
L'opérateur de vaisseau spatial est 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.
Définition de tableaux de constantes via Définir() (PHP 7)<?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 ?>
Les constantes de type Array peuvent désormais être définies via Définir(). En PHP5.6, il ne peut être défini que via const.
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !
<?php define('ANIMALS', [ 'dog', 'cat', 'bird' ]); echo ANIMALS[1]; // outputs "cat" ?>Lecture recommandée :
Comment implémenter le traitement des transactions ADODB en PHP
Comment utiliser Thinkphp5+uploadify pour implémenter un fichier télécharger
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!