Perl日記

PerlとかRubyとかPHPとかPythonとか

PHPの名前空間をuseするときはクラス名まで書く

ちゃんと理解していなかったので読んだ。

PHP: 名前空間 - Manual


useするときには名前空間+クラス名で、そのクラス名を修飾せずとも使えるようになる。

a.php

<?php
namespace Foo;

class Bar {
}

b.php

<?php
require "./a.php";

//var_dump(new Foo\Bar);

// Foo名前空間のBarクラスをインポート
use Foo\Bar;

var_dump(new Bar); //=> class Foo\Bar#1 (0) {}


PHP5.6以上ならば、同様に、名前空間+関数名とか、名前空間+定数名でもインポートすることもできるらしい。