downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
search for in the  

<Namespace definitionGlobal space>
Last updated: Thu, 26 Jun 2008

Using namespaces

Every class and function in a namespace can be referred to by the full name - e.g. MyProject::DB::Connection or MyProject::DB::connect - at any time.

Example #1 Using namespaced name

<?php
  
require 'MyProject/Db/Connection.php';
  
$x = new MyProject::DB::Connection;
  
MyProject::DB::connect();
?>

Namespaces can be imported into current context (global or namespace) using the use operator. The syntax for the operator is:

<?php
/* ... */
use Some::Name as Othername;

// The simplified form of use:
use Foo::Bar;
// which is the same as :
use Foo::Bar as Bar;
?>
The imported name works as follows: every time that the compiler encounters the local name Othername (as stand-alone name or as prefix to the longer name separated by ::) the imported name Some::Name is substituted instead.

use can be used only in global scope, not inside function or class. Imported names have effect from the point of import to the end of the current file. It is recommended to put imports at the beginning of the file to avoid confusion.

Example #2 Importing and accessing namespace

<?php
  
require 'MyProject/Db/Connection.php';
   use
MyProject::DB;
   use
MyProject::DB::Connection as DbConnection;
  
  
$x = new MyProject::DB::Connection();
  
$y = new DB::connection();
  
$z = new DbConnection();
  
DB::connect();
?>

Note: The import operation is compile-time only, all local names are converted to their full equivalents by the compiler. Note that it won't translate names in strings, so callbacks can't rely on import rules.



add a noteadd a note User Contributed Notes
Using namespaces
There are no user contributed notes for this page.




<Namespace definitionGlobal space>
Last updated: Thu, 26 Jun 2008
show source | credits | sitemap | contact | advertising | mirror sites
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: http://phpbuilder.com/
Last updated: Tue Nov 1 20:20:59 2005 EST
Columns / Articles | Tips / Quickies | News | News Linking and RSS Feeds | Shared Code Library
Mail Archives | Support / Discussion Forums | Get Started! Links | Contribute! | Docs