Strange, it worked only when I removed the backslash before feline.
So like this is OK : echo feline\Cat::says()
Espacios de Nombres
Tabla de contenidos
- Visión general de los espacios de nombres
- Definir espacios de nombres
- Declarar subespacios de nombres
- Definir múltiples espacios de nombres en el mismo archivo
- Usar espacios de nombres: Lo básico
- Espacios de Nombres y características dinámicas del lenguaje
- La palabra clave namespace y la constante __NAMESPACE__
- Usar espacios de nombres: Apodar/Importar
- Espacio global
- Usar espacios de nombres: una alternativa a funciones/constantes globales
- Reglas de resolución de nombres
- FAQ: cosas que se necesitan saber sobre los espacios de nombres
guido at go-mobile dot be ¶
13 days ago
Anonymous ¶
1 year ago
The keyword 'use' has two different applications, but the reserved word table links to here.
It can apply to namespace constucts:
file1:
<?php namespace foo;
class Cat {
static function says() {echo 'meoow';} } ?>
file2:
<?php namespace bar;
class Dog {
static function says() {echo 'ruff';} } ?>
file3:
<?php namespace animate;
class Animal {
static function breathes() {echo 'air';} } ?>
file4:
<?php namespace fub;
include 'file1.php';
include 'file2.php';
include 'file3.php';
use foo as feline;
use bar as canine;
use animate;
echo \feline\Cat::says(), "<br />\n";
echo \canine\Dog::says(), "<br />\n";
echo \animate\Animal::breathes(), "<br />\n"; ?>
Note that
felineCat::says()
should be
\feline\Cat::says()
(and similar for the others)
but this comment form deletes the backslash (why???)
The 'use' keyword also applies to closure constructs:
<?php function getTotal($products_costs, $tax)
{
$total = 0.00;
$callback =
function ($pricePerItem) use ($tax, &$total)
{
$total += $pricePerItem * ($tax + 1.0);
};
array_walk($products_costs, $callback);
return round($total, 2);
}
?>
