Namespace in PHP

Objectif: Pour apprendre comment utiliser le même nom de la classe en PHP en utilisant namespace. Généralement, nous ne pouvons pas utiliser deux classes ou plus avec le même nom. Cela donnera une erreur: "Impossible de redéclarer une classe" comme indiqué ci-dessous-
Espace de noms en PHP

Pour gérer cela, nous pouvons utiliser l’espace de noms comme indiqué dans l’exemple ci-dessous: 1. Définir l'espace de noms Demo1 avec la classe Student dans le fichier Demo1 / Student.php

<? php namespace Demo1; class Student {// Tout le code sera présent pour cette classe var $ a = 10; }?>

2. Définition de l'espace de noms Demo2 avec la classe Student (classe portant le même nom) dans Demo2 / Student.php

<? php namespace Demo2; class Student {// Tout le code sera présent pour cette classe var $ a = 20; }?>

3. Maintenant, dans le fichier exemple index.php, nous pouvons utiliser les deux classes sans erreur:

<? php // incluant les deux classes d'étudiants nécessite "Demo1 / Student.php"; nécessite "Demo2 / Student.php"; // création d'une instance de Demo1 \ Student () $ Student1 = new Demo1 \ Student (); // utilisation de la fonctionnalité de première classe echo $ Student1-> a. '<br>'; // création d'une autre instance de Demo2 \ Student () $ Student2 = new Demo2 \ Student (); // utilisation de la fonctionnalité de deuxième classe echo $ Student2-> a;

Écran de sortie:

10
20

Les deux classes auront des fonctionnalités différentes et nous pourrons les utiliser facilement dans un seul fichier.

Remarque : Nous pouvons simplifier le code en utilisant la fonction PHP use ():

utilisez Demo1 \ Student en tant que Student1; $ Student1 = new Student1 (); echo $ Student1-> a. '<br>'; utilisez Demo2 \ Student en tant que Student2; $ Student2 = new Student2 (); echo $ Student2-> a;

Structure du fichier:

index.php
Demo1 / Student.php
Demo2 / Student.php

Article connexe:Chargement automatique en PHP


Akash Roshan

Akash is a PHP developer and wants to share his knowledge through Blogs. He is currently growing in the IT industry while fulfilling his own goals.

Leave a Reply

Your email address will not be published. Required fields are marked *