Home > Article > Backend Development > The difference between Thinkphp's A, R, M, and D methods_PHP tutorial
In Thinkphp, there are several methods for instantiating objects. If it is a class, there are A and R methods. The difference is that the A method is only an instantiation of the object, while the R method can instantiate the methods in the object at the same time. You need to specify it here, such as the following example code:
<!--?php namespace Admin\Controller; use Think\Controller; class GoodsController extends Controller{ public function showlist(){ //实例化控制器A方法 $test=A("Manager"); echo $test--->test1(); echo " "; //也可以去跨模块调用 $test_m=A("Home/Goods"); echo $test_m->test(); echo " "; //R方法可以取执行对应模块下面的 R("Home/Goods/test"); // $this->display(); } }
In addition, we must use the following two methods in the Model data model, one is the D method and the other is the M method. The former is the instantiated data model class, and the latter is the parent class of the instantiated data model.
<!--?php namespace Admin\Controller; use Think\Controller; class TestController extends Controller{ public function test1(){ $mythinkphp=M("user"); $t=$mythinkphp--->select(); echo "
"; // var_dump($mythinkphp->select()); // echo count($t); // echo " "; // echo count($t[1]); // echo " "; // for($i=0; $i<count($t); border="'1px'" br="" echo="" function="" i="0;" is="" pre="" public="" t="new" t2="D("test_1");" table="" temp="$t2->select();" test="" this="" user="D("Test");"> 虽然从用法上看不出什么差别,但是内部确实不同的,D方法只实例化定义的数据模型类,而M方法去实例化数据模型的父类。<p> </p><p> </p><p> </p></count($t);>