语言参考
在线手册:中文  英文

命名空间

Table of Contents


语言参考
在线手册:中文  英文

用户评论:

guido at go-mobile dot be (2013-04-18 13:27:53)

Strange, it worked only when I removed the backslash before feline.
So like this is OK : echo feline\Cat::says()

Anonymous (2011-05-25 11:06:14)

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($total2);
    }
?>

易百教程