- bind和singleton
public function singleton($abstract, $concrete = null)
{
$this->bind($abstract, $concrete, true);
}
bind是会返回新的实例,singleton始终返回一个(还是调用的bind,但是第三个参数是true,表示单例),具体看例子:
//bind()
class myclass{
public $name = null;
}
$container = new Illuminate\Container\Container();
$container->bind('myclass');
$obj1 = $container->make('myclass');
$obj1->name = '11';
$obj2 = $container->make('myclass');
$obj2->name = '22';
echo $obj1->name."-".$obj2->name;//输出11-22
//singleton()
class myclass{
public $name = null;
}
$container = new Illuminate\Container\Container();
$container->singleton('myclass');
$obj1 = $container->make('myclass');
$obj1->name = '11';
$obj2 = $container->make('myclass');
$obj2->name = '22';
echo $obj1->name."-".$obj2->name;//输出22-22
由此可见singleton是单例。
网友评论