ADS - GoldenWeb.it Directory "Premium" Links

Compendium
Compendium offre la consulenza di professionisti con competenze giuslavoristiche e finanziarie, fornendo servizi in outsourcing per il PayRoll, la contabilità delle risorse umane, l’amministrazione aziendale, la finanza ed il controllo di gestione, temporary management.
Fabbrica Divani Chester - Boheme Salotti
Produzione Artigianale di divani Chesterfield classici senza tempo. I nostri eleganti divani Chesterfield sono realizzati a mano da esperti artigiani direttamente nella nostra fabbrica ad Altamura, il centro del Triangolo del Salotto. Acquista direttamente dalla Fabbrica e risparmia su divani e poltrone Chesterfield.
Scaricatore di condensa automatico aria compressa
Trappole e scaricatori di condensa che in modo automatico lavorano sui compressori o sui sistemi che genera aria compressa.
Grafica 3B
Grafica 3B si occupa di comunicazione a 360° per le aziende di Milano e non solo. Un team di esperti di marketing in grado di studiare i bisogni, progettare e sviluppare un piano pubblicitario strategico e mirato ad aumentare la visibilità. Ci occupiamo nello specifico dello studio grafico di loghi, cataloghi, menu, banner e più in generale della definizione di una brand identity con servizio di stampa digitale piccoli e grandi formati. L'agenzia opera anche nel settore web

Inserisci il tuo sito nella directory...

Manuale PHP


Using namespaces: Basics

(PHP 5 >= 5.3.0)

Before discussing the use of namespaces, it is important to understand how PHP knows which namespaced element your code is requesting. A simple analogy can be made between PHP namespaces and a filesystem. There are three ways to access a file in a file system:

  1. Relative file name like foo.txt. This resolves to currentdirectory/foo.txt where currentdirectory is the directory currently occupied. So if the current directory is /home/foo, the name resolves to /home/foo/foo.txt.
  2. Relative path name like subdirectory/foo.txt. This resolves to currentdirectory/subdirectory/foo.txt.
  3. Absolute path name like /main/foo.txt. This resolves to /main/foo.txt.
The same principle can be applied to namespaced elements in PHP. For example, a class name can be referred to in three ways:
  1. Unqualified name, or an unprefixed class name like $a = new foo(); or foo::staticmethod();. If the current namespace is currentnamespace, this resolves to currentnamespacefoo. If the code is global, non-namespaced code, this resolves to foo. One caveat: unqualified names for functions and constants will resolve to global functions and constants if the namespaced function or constant is not defined. See Using namespaces: fallback to global function/constant for details.
  2. Qualified name, or a prefixed class name like $a = new subnamespacefoo(); or subnamespacefoo::staticmethod();. If the current namespace is currentnamespace, this resolves to currentnamespacesubnamespacefoo. If the code is global, non-namespaced code, this resolves to subnamespacefoo.
  3. Fully qualified name, or a prefixed name with global prefix operator like $a = new currentnamespacefoo(); or currentnamespacefoo::staticmethod();. This always resolves to the literal name specified in the code, currentnamespacefoo.

Here is an example of the three kinds of syntax in actual code:

file1.php

<?php
namespace FooBarsubnamespace;

const 
FOO 1;
function 
foo() {}
class 
foo
{
    static function 
staticmethod() {}
}
?>

file2.php

<?php
namespace FooBar;
include 
'file1.php';

const 
FOO 2;
function 
foo() {}
class 
foo
{
    static function 
staticmethod() {}
}

/* Unqualified name */
foo(); // resolves to function FooBarfoo
foo::staticmethod(); // resolves to class FooBarfoo, method staticmethod
echo FOO// resolves to constant FooBarFOO

/* Qualified name */
subnamespacefoo(); // resolves to function FooBarsubnamespacefoo
subnamespacefoo::staticmethod(); // resolves to class FooBarsubnamespacefoo,
                                  // method staticmethod
echo subnamespaceFOO// resolves to constant FooBarsubnamespaceFOO
                                  
/* Fully qualified name */
FooBarfoo(); // resolves to function FooBarfoo
FooBarfoo::staticmethod(); // resolves to class FooBarfoo, method staticmethod
echo FooBarFOO// resolves to constant FooBarFOO
?>

Note that to access any global class, function or constant, a fully qualified name can be used, such as strlen() or Exception or INI_ALL.

Example #1 Accessing global classes, functions and constants from within a namespace

<?php
namespace Foo;

function 
strlen() {}
const 
INI_ALL 3;
class 
Exception {}

$a strlen('hi'); // calls global function strlen
$b INI_ALL// accesses global constant INI_ALL
$c = new Exception('error'); // instantiates global class Exception
?>