假设这种情况:
interface IFoo
{
public function Bar();
}
trait Foo
{
public function Bar()
{
echo 'Bar';
}
}
class FooBar implements IFoo
{
use Foo;
}
$foobar = new FooBar();
$foobar->Bar(); //echos 'Bar';
我将类FooBar放在自己的文件中,并将IFoo连接到它自己的文件中。
但是我应该怎么做特质Foo:
注意:netbeans将类FooBar的代码标记为无效。 Netbeans没有检测到特性Foo用于实现IFoo。错误?
答案 0 :(得分:4)
Traits像类一样自动加载。因此,如果你有一个PSR兼容的加载器(名称空间是目录,文件名是类/接口/特征名称),一切都应该在它自己的文件中使用特征。
所以为了回答标题中的问题,如果你想坚持标准,那么你应该使用PSR加载,所以是的,特征应该在单独的文件中。
就netbeans而言,我认为7.2是唯一支持php 5.4(以及特性)的版本,因此请确保你拥有netbeans 7.2,并在项目设置中设置php 5.4。 / p>