Introduction aux nouvelles fonctionnalités telles que les fonctions php7, les déclarations, les valeurs de retour, etc.

伊谢尔伦
Libérer: 2023-03-11 15:08:02
original
4409 Les gens l'ont consulté

Utilisez l'opérateur... pour définir des fonctions d'argument de longueur variable (PHP 5 >= 5.6.0, PHP 7)

Vous pouvez maintenant utiliser l'opérateur... . pour implémenter des fonctions de paramètres de longueur variable.

<?php
function f($req, $opt = null, ...$params) {
 // $params 是一个包含了剩余参数的数组
 printf(&#39;$req: %d; $opt: %d; number of params: %d&#39;."\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);
?>
Copier après la connexion

La routine ci-dessus affichera :

$req : 1 ; $opt : 0 ; de paramètres : 0
$req : 1 ; $opt : 2 ; nombre de paramètres : 1
$req : 1 ; : 2; nombre de paramètres : 3


Utiliser... l'opérateur pour l'expansion des paramètres (PHP 5 >= 5.6.0, PHP 7)


lors de l'appel Quand à 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 tels que 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);
?>
Copier après la connexion

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 la classe. 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();
}
?>
Copier après la connexion

42


NameSpacef

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.

La routine ci-dessus affichera :
<?php
class C {
 private $prop;

 public function construct($val) {
  $this->prop = $val;
 }

 public function debugInfo() {
  return [
   &#39;propSquared&#39; => $this->prop ** 2,
  ];
 }
}

var_dump(new C(42));
?>
Copier après la connexion

object(C)#1 (1) {
 ["propSquared"]=>
 int(1764)
}
Copier après la connexion
Déclaration de type scalaire (PHP 7)


La déclaration de type scalaire a Deux modes : mode obligatoire (par défaut) et mode strict. Les paramètres de type suivants sont désormais disponibles (en mode forcé ou strict) :

string

(string), entier (int), nombre à virgule flottante (float) et booléen (bool). Ils étendent d'autres types introduits dans PHP5 : noms de classes, interfaces, tableaux et types de rappel.

La routine ci-dessus affichera :
<?php
// Coercive mode
function sumOfInts(int ...$ints)
{
 return array_sum($ints);
}

var_dump(sumOfInts(2, &#39;3&#39;, 4.1));
Copier après la connexion

int(9)


Pour utiliser le mode strict, une directive de déclaration déclarer doit être placée en haut de le fichier. Cela signifie que les scalaires sont strictement déclarés configurables sur une base de 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]));
Copier après la connexion
Array

(

[0] => 6

[1] => 15
[ 2] => 24
)



opérateur de coalescence nul (PHP 7)

En raison du grand nombre d'utilisations simultanées en utilisation quotidienne Dans le cas d'expressions ternaires et d'isset(), 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 (comparateur combiné) (PHP 7)
<?php
// Fetches the value of $_GET[&#39;user&#39;] and returns &#39;nobody&#39;
// if it does not exist.
$username = $_GET[&#39;user&#39;] ?? &#39;nobody&#39;;
// This is equivalent to:
$username = isset($_GET[&#39;user&#39;]) ? $_GET[&#39;user&#39;] : &#39;nobody&#39;;

// Coalesces can be chained: this will return the first
// defined value out of $_GET[&#39;user&#39;], $_POST[&#39;user&#39;], and
// &#39;nobody&#39;.
$username = $_GET[&#39;user&#39;] ?? $_POST[&#39;user&#39;] ?? &#39;nobody&#39;;
?>
Copier après la connexion

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
?>
Copier après la connexion

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.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!