Расширенное программирование PHP – Как использовать пространство имен в PHP
Для начинающих PHP концепции пространств имен кажутся довольно сложными. Но как только мы поймем основы пространств имен, это будет легко реализовать. В этой статье мы изучаем, как использовать пространство имен в PHP.
Как разработчик, вы получите представление о продвинутом программировании PHP при использовании пространств имен в своем коде.
PHP ввел пространства имен, чтобы избежать конфликтов имен между классами, функциями и константами.
Когда мы работаем над большим проектом, программисты могут дать одинаковые имена классам, функциям или константам. Например, если два программиста определяют один и тот же класс A, тогда PHP выдает фатальную ошибку, например, невозможно повторно объявить класс A.
Определить пространство имен в PHP
Чтобы понять, когда нам следует определять пространство имен, мы напишем некоторый фрагмент кода.
Допустим, наш единственный разработчик написал приведенный ниже код в файл john.php. Этот код – всего лишь пример для объяснения пространств имен. Для простоты мы пишем функцию, класс и константы в одном файле.
function my_name() {
echo "John";
}
class Programming {
function my_language() {
echo "PHP";
}
}
const MYCONST = 1;
У нас есть еще один разработчик, который также использовал то же имя для класса, функций и констант, но для разных целей (выходов). Его файл называется sam.php.
function my_name() {
echo "Sam";
}
class Programming {
function my_language() {
echo "Python";
}
}
const MYCONST = 2;
Теперь, когда оба файла разработчика включены в наш проект, мы получим фатальную ошибку. Причина ошибки в том, что мы не можем использовать одно и то же имя дважды для класса или метода.
Здесь мы должны определить пространство имен.
В обоих файлах PHP мы можем определить пространства имен, как показано ниже.
<?php
namespace John;
function my_name() {
echo "John";
}
class Programming {
function my_language() {
echo "PHP";
}
}
const MYCONST = 1;
?>
А также
<?php
namespace Sam;
function my_name() {
echo "Sam";
}
class Programming {
function my_language() {
echo "Python";
}
}
const MYCONST = 2;
?>
После того, как мы добавим пространства имен к вышеуказанным файлам, ошибки PHP исчезнут.
Использование пространств имен
На этом этапе мы закончили с определением пространств имен. Следующий шаг – как использовать пространства имен в PHP.
Чтобы использовать метод, класс и константы обоих программистов, нам нужно написать следующий код.
<?php
require_once('john.php');
require_once('sam.php');
Sammy_name(); //output "Sam"
Johnmy_name(); //output "John"
$a = new SamProgramming();
$a->my_language(); //output "Python"
$b = new JohnProgramming();
$b->my_language(); //output "John"
echo JohnMYCONST; //output "1"
echo SamMYCONST; //output "2"
?>
Для доступа к классу или методам мы должны добавить перед ним имя пространства имен.
Мы надеемся, что вы понимаете, как использовать пространство имен в PHP. Если у вас есть вопросы или предложения, оставьте комментарий ниже.