Namespace in PHP

Objetivo: Para aprender cómo podemos usar el mismo nombre de la clase en PHP usando el espacio de nombres. Generalmente no podemos usar dos o más clases con el mismo nombre. Dará un error: "No se puede volver a declarar la clase." Como se muestra abajo-
Espacio de nombres en PHP

Para manejar esto, podemos usar el espacio de nombres como se muestra en el ejemplo a continuación: 1. Definición del espacio de nombres Demo1 con la clase Student en Demo1 / Student.php

<? php namespace Demo1; class Student {// Todo el código estará aquí para esta clase var $ a = 10; }?>

2. Definición del espacio de nombres Demo2 con la clase Student (clase con el mismo nombre) en Demo2 / Student.php

<? php namespace Demo2; class Student {// Todo el código estará aquí para esta clase var $ a = 20; }?>

3. Ahora, en el archivo de ejemplo index.php, podemos usar ambas clases sin ningún error:

<? php // incluyendo ambas clases de Student requieren "Demo1 / Student.php"; requiere "Demo2 / Student.php"; // haciendo una instancia de Demo1 \ Student () $ Student1 = new Demo1 \ Student (); // usando la funcionalidad de primera clase echo $ Student1-> a. '<br>'; // haciendo otra instancia de Demo2 \ Student () $ Student2 = new Demo2 \ Student (); // usando la funcionalidad de segunda clase echo $ Student2-> a;

Pantalla de salida:

10
20

Ambas clases tendrán una funcionalidad diferente y podremos usar ambas clases en un solo archivo fácilmente.

Aviso: Podemos hacer que el código sea más fácil usando la función use () de PHP:

use Demo1 \ Student como Student1; $ Student1 = nuevo Student1 (); echo $ Student1-> a. '<br>'; use Demo2 \ Student como Student2; $ Student2 = nuevo Student2 (); echo $ Student2-> a;

Estructura del archivo:

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

Artículo relacionado:Auto carga 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 *