Cette fois, je vais résumer les nouvelles fonctionnalités de php7. Ce qui suit est un cas pratique. Suivons les traces de l'éditeur et jetons un œil.
Déclaration de type scalaire (nécessite que le paramètre soit un type spécifique, si le type de paramètre ne correspond pas, un fatal une erreur se produira dans php5, php7 lancera une exception TypeError)
a deux modes : obligatoire (par défaut) et le mode strict
les paramètres de type sont :
. 1. string
2. int
3. float
4.bool
Ils étendent d'autres types introduits dans php5
1. Nom de la classe
2. Interface
3. Tableau
4. Type de rappel
Par exemple : 🎜>
<span style="font-size:18px;">function sumOfInts(int ...$ints) { return array_sum($ints); } var_dump(sumOfInts(2, '3', 4.1));</span>
int(9)
précise le type de la valeur de retour de la fonction. Les types disponibles sont les mêmes que ceux disponibles dans la déclaration des paramètres.
<span style="font-size:18px;"><?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])); 以上例程会输出: Array ( [0] => 6 [1] => 15 [2] => 24 )</span>
Opérateur de coalescence NULL
$username = $_GET['user'] ?? 'nobody';
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
Combinaison d'opérateurs de comparaison
<span style="font-size:18px;"><?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 ?></span>
Définir un tableau constant
<?php define('ANIMALS', [ 'dog', 'cat', 'bird' ]); echo ANIMALS[1]; // outputs "cat" ?> php5.6 中 仅能通过const 定义 <?php const $a = [ 'a','b','c', ]; echo $a[1] ; //输出 “b” ?>
Classe anonyme via definition() En prenant en charge une nouvelle classe pour instancier une classe anonyme, cela peut être utilisé pour remplacer certaines classes de complétion qui ne sont utilisées qu'une seule fois
Fournir un filtrage pour unserialize()
IntlChar
<span style="font-size:18px;"><?php // 把所有的对象转换为 __PHP_Incomplete_Class object $data = unserialize($foo, ["allowed_classes" => false]); // 除了MyClass,MyClass2 都转换为 into __PHP_Incomplete_Class object $data = unserialize($foo, ["allowed_classes" => ["MyClass", "MyClass2"]); // 默认的行为,接受所有的参数 $data = unserialize($foo, ["allowed_classes" => true]); </span>
La classe IntlChar nouvellement ajoutée est conçue pour exposer davantage de fonctions ICU. Cette classe se définit. Il existe de nombreuses méthodes statiques pour exploiter les caractères Unicode dans plusieurs jeux de caractères <. 🎜>Si vous souhaitez utiliser cette classe, vous devez d'abord installer l'extension Intl
Attendu
devrait être une méthode rétrocompatible et améliorée du précédent assert(), qui rend l'activation des assertions dans un environnement de production gratuite et offre la possibilité de lancer des exceptions caractéristiques lorsque les assertions échouent.
Utiliser utiliser pour déclarer un ensemble de classes
L'expression de retour du générateur
<span style="font-size:18px;"><?php // Pre PHP 7 code use some\namespace\ClassA; use some\namespace\ClassB; use some\namespace\ClassC as C; use function some\namespace\fn_a; use function some\namespace\fn_b; use function some\namespace\fn_c; use const some\namespace\ConstA; use const some\namespace\ConstB; use const some\namespace\ConstC; // PHP 7+ code use some\namespace\{ClassA, ClassB, ClassC as C}; use function some\namespace\{fn_a, fn_b, fn_c}; use const some\namespace\{ConstA, ConstB, ConstC}; ?> </span>
Un générateur peut déléguer à un autre générateur Le dispositif
<span style="font-size:18px;"><?php $gen = (function() { yield 1; yield 2; return 3; })(); foreach ($gen as $val) { echo $val, PHP_EOL; } echo $gen->getReturn(), PHP_EOL;// 换行,为了提高源码可读性 以上例程会输出: 1 2 3 </span>
Nouvelle fonction de division entière intp()
<span style="font-size:18px;"><?php function gen() { yield 1; yield 2; yield from gen2(); } function gen2() { yield 3; yield 4; } foreach (gen() as $val) { echo $val, PHP_EOL; } ?> 以上例程会输出: 1 2 3 4 </span>
Les options de session
<span style="font-size:18px;"><?php var_dump(intp(10, 3)); ?> 以上例程会输出: int(3) </span>
comme suit : <. 🎜>
Nouvelle fonction preg_replace_callback_array()
qui peut mieux fonctionner que preg_replace_callback()
<span style="font-size:18px;"><?php session_start([ 'cache_limiter' => 'private', 'read_and_close' => true, ]); ?> </span>
random_bytes nouvellement ajouté( ) et random_int() deux fonctions
Veuillez consulter ce qui suit pour une utilisation spécifique :
random_bytes()
random_int()
list() ne prend plus en charge le déballage automatique de avant que
list ne fournisse aucune garantie pour objets d'exploitation qui implémentent ArrayAccess , maintenant ce problème a été résolu
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!