Maison >développement back-end >tutoriel php >A quoi sert use en php

A quoi sert use en php

angryTom
angryTomoriginal
2019-08-24 09:39:0211224parcourir

A quoi sert use en php

En PHP, si la chaîne de l'espace de noms est trop longue, nous utilisons use pour raccourcir l'espace de noms en conséquence. C'est aussi le rôle de l'utilisation en PHP. Ci-dessous, nous vous présenterons l'utilisation de use en PHP.

Tutoriels recommandés : Tutoriel vidéo PHP

1. Lors de l'utilisation de la nouvelle classe, il n'y a pas de tutoriel. besoin d'utiliser une barre oblique inversée à l'avant. De plus, lorsqu'il n'y a pas de as après utilisation, l'espace de noms raccourci est par défaut le contenu après la dernière barre oblique inverse.

namespace animal\dog;
class Life{
 function __construct(){
  echo 'dog life!';
 }
}
namespace animal\cat;
class Life{
 function __construct(){
  echo 'cat life!';
 }
}
new Life(); //按照代码执行顺序,这里默认animal\cat这个命名空间
new \animal\dog\Life(); //A
use animal\dog; //a
new dog\Life(); //B
use animal\dog as d; //b
new d\Life();

En comparant les lignes A et B, veuillez noter :

Après utilisation, il n'y a pas de barre oblique inverse à l'avant lors de l'utilisation de la nouvelle classe.

Quand use n'est pas utilisé, il y a une barre oblique inverse au début de l'espace de noms

En comparant les lignes a et b, on peut comprendre :

Quand il n'y a pas de as après utilisation, il est raccourci. L'espace de noms est par défaut ce qui suit la dernière barre oblique inverse. Comme ci-dessus :

use animal\dog;

équivaut à

use animal\dog as dog;

2. Il n'est pas recommandé d'ajouter un nom de classe après l'espace de noms, mais c'est OK après utilisation.

//name.php
namespace animal\dog;
class Life{
 function __construct(){
  echo 'dog life!';
 }
}
namespace animal\cat;
class Life{
 function __construct(){
  echo 'cat life!';
 }
}
use animal\dog\Life as dog; 
new dog();

Comme indiqué ci-dessus, ajouter le nom de la classe après utilisation équivaut à changer le nom de la classe : de Life à dog.

Si vous n'utilisez pas as dog ci-dessus, vous obtiendrez une erreur :

 Fatal error:  Cannot use animal\dog\Life as Life because the name is already in use

Car il existe également une classe Life avec le même nom sous cat.

On peut comprendre qu'après utilisation use, la classe correspondant à ce pseudo ne peut être occupée que par l'espace de noms actuel, et cette classe n'est pas autorisée à exister dans d'autres espaces de noms.

//name.php
namespace animal\dog;
class Life{
 function __construct(){
  echo 'dog life!';
 }
}
class Dog{
 function __construct(){
  echo 'dog in dog!';
 }
}
namespace animal\cat;
// class Dog{
// function __construct(){
//  echo 'dog in cat!';
//  }
// }
class Life{
 function __construct(){
  echo 'cat life!';
 }
}
use animal\dog; 
new dog\Dog();

Comme ci-dessus, en utilisant

 use animal\dog;
  cat

Grâce au code ci-dessus, le but de l'utilisation de use (raccourcir le nom de l'espace de noms) est évident.

Pour résumer brièvement :

Utiliser est un surnom, qui peut éviter bien des ennuis tant à l'écrit qu'à l'oral.

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!

Déclaration:
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