検証環境
- PHP 5.5.30
- PHP 5.6.16
- PHP 7.0.3
<?php
namespace ns1;
class Foo
{
public static function bar()
{
return __METHOD__;
}
}
namespace ns2;
use ns1\Foo;
echo Foo::bar() . "\n"; // -> ns1\Foo::bar
//非修飾(エラーになる)
$className = 'Foo';
$className::bar() . "\n"; // -> Fatal error: Class 'Foo' not found
//修飾
$querifiedName = 'ns1\\' . $className;
echo $querifiedName::bar() . "\n"; // -> ns1\Foo::bar
//完全修飾
$fullyQuerifiedName = '\\ns1\\' . $className;
echo $fullyQuerifiedName::bar() . "\n"; // -> ns1\Foo::bar