Namespace in PHP

Obbiettivo: Per sapere come possiamo usare lo stesso nome della classe in PHP usando namespace. Generalmente non possiamo usare due o più classi con lo stesso nome. Darà un errore: "Impossibile redeclare la classe" come mostrato di seguito-
Namespace in PHP

Per gestirlo, possiamo usare lo spazio dei nomi come mostrato nell'esempio seguente: 1. Definire il namespace Demo1 con la classe Student nel Demo1 / Student.php

<? php namespace Demo1; classe Student {// Tutto il codice sarà qui per questa classe var $ a = 10; }?>

2. Definizione dello spazio dei nomi Demo2 con classe Student (classe con lo stesso nome) in Demo2 / Student.php

<? php namespace Demo2; classe Student {// Tutto il codice sarà qui per questa classe var $ a = 20; }?>

3. Ora nel file di esempio index.php, siamo in grado di utilizzare entrambe le classi senza errori:

<? php // che include entrambe le classi di studenti richiedono "Demo1 / Student.php"; richiede "Demo2 / Student.php"; // creazione di un'istanza di Demo1 \ Student () $ Student1 = new Demo1 \ Student (); // utilizzando la funzionalità di prima classe echo $ Student1-> a. '<br>'; // creando un'altra istanza di Demo2 \ Student () $ Student2 = new Demo2 \ Student (); // utilizzando la funzionalità di seconda classe echo $ Student2-> a;

Schermo di uscita:

10
20

Entrambe le classi avranno funzionalità diverse e saremo in grado di utilizzare entrambe le classi in un singolo file facilmente.

Nota: Possiamo rendere il codice più semplice usando la funzione PHP use ():

utilizzare Demo1 \ Studente come Student1; $ Student1 = new Student1 (); echo $ Student1-> a. '<br>'; utilizzare Demo2 \ Studente come Student2; $ Student2 = new Student2 (); echo $ Student2-> a;

Struttura del file:

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

Articolo correlato:Caricamento automatico in 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 *