1.TP实例化model的方式

thinkphp采用表中的mvc架构,其中实例化model更是编码过程中最长遇到的操作。tp内部提供了以下几种实例化model的方法
1.静态调用

  1. $user = User::get(1);
  2. $user->name = 'thinkphp';
  3. $user->save();

2.new 实例化

  1. $user = new User;
  2. $user->name= 'thinkphp';
  3. $user->save();

3.Loader实例化(单例)

  1. $user = Loader::model('User');

4.model()助手函数

  1. $user = model('User');
  2. $user->name= 'thinkphp';
  3. $user->save();

2.各方式之间的差异

1.静态调用
静态调用类并不要求类的方法是静态,但是如果调用类的属性则必须要求类的属性为const常量。并且调用的方法在执行时,使用$this,作用域在调用者所在位置,而不是模型。
2.new 实例化
最常见的模型实例化方式,与原生php没有不同。多个new会同时存在多个实例,并且同样的实例并不会被覆盖或者回收。各实例的作用域格式相互隔离。
3.Loader实例化
此方式为单利模式,同一个进程的生存周期里,调用多次会使用同一个实例。
4.model助手函数
与Loader方式相同