MyTetra Share
Делитесь знаниями!
О, смотри-ка какое хорошее место. Дайте два!
Пространства имен в PHP 5.3 - Описание нескольких пространств имен в одном файле
26.03.2017
19:40
Раздел: Компьютер - Программирование - Язык PHP

Несколько пространств имен также можно описать в одном файле с помощью двух допустимых синтаксических конструкций.

Пример #1 Описание нескольких пространств имен, простой синтаксис

<?php
namespace MyProject;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }

namespace AnotherProject;

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
?>

Данный синтаксис не рекомендуется для комбинирования пространств имен в одном файле. Вместо этого рекомендуется использовать альтернативный синтаксис со скобками.

Пример #2 Описание нескольких пространств имен, синтаксис со скобками

<?php
namespace MyProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}

namespace AnotherProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}
?>


Настоятельно не рекомендуется при программировании комбинировать несколько пространств имен в один файл. Основным применением этому может быть объединение нескольких PHP файлов в один файл.

Для объединения кода в глобальном пространстве имен с кодом в других пространствах имен, используется только синтаксис со скобками. Глобальный код должен быть помещен в конструкцию описания пространства имен без указания имени:

Пример #3 Описание глобального и обычного пространства имен в одном файле

<?php
namespace MyProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}

namespace {       // глобальный код
session_start();
$a = MyProject\connect();
echo MyProject\Connection::start();
}
?>

PHP-код не может находиться вне скобок конструкции пространства имен, кроме начального выражения declare.

Пример #4 Описание глобального и обычного пространства имен в одном файле

<?php
declare(encoding='UTF-8');
namespace MyProject {

const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */  }
}

namespace {      // глобальный код
session_start();
$a = MyProject\connect();
echo MyProject\Connection::start();
}
?>


Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования