Thinkphp的A,R,M,D方法区别

在Thinkphp中,实例化对象有这么几种方法,如果是类,有A和R方法,区别是A方法只是对象的实例化,而R方法是可以同时实例化对象里面的方法的,,这里需要去指定,如下面的实例代码:

<?phpnamespace Admin\Controller;use Think\Controller;class GoodsController extends Controller{public function showlist(){//实例化控制器A方法$test=A("Manager");echo $test->test1();echo "<br/>";//也可以去跨模块调用$test_m=A("Home/Goods");echo $test_m->test();echo "<br/>";//R方法可以取执行对应模块下面的R("Home/Goods/test");// $this->display();}}从上面可以看出,R方法同时也可以去跨模块去实例化。

另外我们在Model的数据模型里面,必然需要下面的两种方法,一个是D方法,一个是M方法,前者是实例化数据模型类,而后者则是实例化数据模型的父类。

<?phpnamespace Admin\Controller;use Think\Controller;class TestController extends Controller{public function test1(){$mythinkphp=M("user");$t=$mythinkphp->select();echo "<pre>";// var_dump($mythinkphp->select());// echo count($t);// echo "<br/>";// echo count($t[1]);// echo "<br/>";// for($i=0; $i<count($t); $i++){// if($t[$i]['name']=='xuning'){// echo "存在这个用户,用户ID为".($i-1);// }// }// echo "<br/>";//这样就完成了从数据库里面去遍历数据echo "<center>";echo "<h1>This is table test content</h1>";echo "<table border='1px'>";for($i=0; $i< count($t); $i++){echo "<tr>";echo "<td>";echo $t[$i]['id'];echo "</td>";echo "<td>";echo $t[$i]['name'];echo "</td>";echo "<td>";echo $t[$i]['password'];echo "</td>";echo "</tr>";}echo "</table>";echo "</center>";echo "</pre>";$t2=D("test_1");$temp=$t2->select();echo $temp[0]['name'];}public function test2(){//其实这里的实例化是建立的数据库对象,并不是精确到表,同时//我们也可以不是建立数据模型,从而直接使用,所以,$t=new \Model\TestModel;show_bug($t);}public function test3(){$user=D("Test");show_bug($user);}}虽然从用法上看不出什么差别,但是内部确实不同的,D方法只实例化定义的数据模型类,而M方法去实例化数据模型的父类。

怪天怪地,我都不会怪你,你有选择幸福的权利…

Thinkphp的A,R,M,D方法区别

相关文章:

你感兴趣的文章:

标签云: