3 PHP 8.0의 냉각 기능

Je veux juste vous montrer quelques fonctionnalités cool de PHP 8.0

인수 노메



Vous voyez quant vous voulez utiliser une fonction avec de multiple argument optionnels ?

function exampleFunction(
    $param1,
    $param2 = "param2",
    $param3="param3", 
    $param4="param4")
{
    # some actions
}

Si vous voulez appeler cette fonction en laissant les paramètres par défaut, sauf le dernier, vous deviez jusque-là tous les répéter ;

    exampleFunction($param1,"param2","param3","param4-v2");

C'est bien trop long. Mais rassurez-vous, j'ai la solution pour vous. Avec Php 8.0, vous pouvez spécifier quel paramètre vous passé en donnant son nom. Cela permet de se soustraire à la contrainte de l'ordre des paramètres, et d'onc d'éviter de devoir réécrire tous les paramètres 옵션:

    exampleFunction($param1,param4:"param4-v2");

Null 안전 연산자



Cette fois, on va parler d'objets. Is vous voulez accéder à la méthode d'un objet, vous devez vérifier que l'objet en question est bien initialisé. Pour cela vous allez surement écrire quelque는 qui ressemble à를 선택했습니다.

if(isset($parent) && $parent!= null)
{
    $parent->method();
}

Mais en fait, vous pourriez vous contenter d'écrire :

$parent?->method();

C'est particulièrement utile quand vous voulez accéder à une valeur en enchainant les methodes.
Par exemple, dans un MVC, sivous voulez accéder à un attribut de l'objet retourné par une méthode fetch d'un modèle, dans votre controlr, is suffit d'écrire;

$this?->model??->fetch($id)?->name;

단순화 de l'écriture des classes



Si vous écrivez une classe en PHP, vous devez définir les attributs et leur niveau de secretité. Avant, vous deviez les définir en dehors du constructeur. Ce qui veut dire que vous ne pouviez pas définir et initialiser l'attribut en même temps avec une valeur dépendant des paramètres du constructor.

class Example{
  public float $attribute;
  public function __construct(
    float $attribute,
  ) {
    $this->attribute = $attribute;
  }
}

Avec PHP 8.0, vous pouvez définir les attributs de votre class comme étant les paramètres de votre constructor :

class Example{
  public function __construct(
    public float $attribute,
  ) {
  }
}

Merci de m'avoir lu



Passez une bonne journée.
비수스.

Vous pouvez retrouvez la version anglaise de ce post juste ici :


좋은 웹페이지 즐겨찾기