ThinkPHP的A方法,R方法,M方法,D方法区别
Posted God is Love
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP的A方法,R方法,M方法,D方法区别相关的知识,希望对你有一定的参考价值。
在Thinkphp中,实例化对象有这么几种方法,如果是类,有A和R方法,区别是A方法只是对象的实例化,而R方法是可以同时实例化对象里面的方法的,这里需要去指定,如下面的实例代码:
1 <?php 2 namespace Admin\Controller; 3 use Think\Controller; 4 5 class GoodsController extends Controller{ 6 public function showlist(){ 7 8 //实例化控制器A方法 9 $test=A("Manager"); 10 echo $test->test1(); 11 12 echo "<br/>"; 13 14 //也可以去跨模块调用 15 $test_m=A("Home/Goods"); 16 echo $test_m->test(); 17 18 echo "<br/>"; 19 //R方法可以取执行对应模块下面的 20 R("Home/Goods/test"); 21 // $this->display(); 22 } 23 }
从上面可以看出,R方法同时也可以去跨模块去实例化。
另外我们在Model的数据模型里面,必然需要下面的两种方法,一个是D方法,一个是M方法,前者是实例化数据模型类,而后者则是实例化数据模型的父类。
1 <?php 2 namespace Admin\Controller; 3 use Think\Controller; 4 class TestController extends Controller{ 5 public function test1(){ 6 $mythinkphp=M("user"); 7 $t=$mythinkphp->select(); 8 echo "<pre>"; 9 // var_dump($mythinkphp->select()); 10 // echo count($t); 11 // echo "<br/>"; 12 // echo count($t[1]); 13 // echo "<br/>"; 14 // for($i=0; $i<count($t); $i++){ 15 // if($t[$i][‘name‘]==‘xuning‘){ 16 // echo "存在这个用户,用户ID为".($i-1); 17 // } 18 // } 19 // echo "<br/>"; 20 //这样就完成了从数据库里面去遍历数据 21 echo "<center>"; 22 echo "<h1>This is table test content</h1>"; 23 echo "<table border=‘1px‘>"; 24 for($i=0; $i< count($t); $i++){ 25 echo "<tr>"; 26 echo "<td>"; 27 echo $t[$i][‘id‘]; 28 echo "</td>"; 29 echo "<td>"; 30 echo $t[$i][‘name‘]; 31 echo "</td>"; 32 echo "<td>"; 33 echo $t[$i][‘password‘]; 34 echo "</td>"; 35 echo "</tr>"; 36 } 37 echo "</table>"; 38 echo "</center>"; 39 echo "</pre>"; 40 $t2=D("test_1"); 41 $temp=$t2->select(); 42 echo $temp[0][‘name‘]; 43 } 44 public function test2(){ 45 //其实这里的实例化是建立的数据库对象,并不是精确到表,同时 46 //我们也可以不是建立数据模型,从而直接使用,所以, 47 $t=new \Model\TestModel; 48 show_bug($t); 49 } 50 public function test3(){ 51 $user=D("Test"); 52 show_bug($user); 53 } 54 }
虽然从用法上看不出什么差别,但是内部确实不同的,D方法只实例化定义的数据模型类,而M方法去实例化数据模型的父类。
参考http://blog.csdn.net/mycodedream/article/details/45340949
以上是关于ThinkPHP的A方法,R方法,M方法,D方法区别的主要内容,如果未能解决你的问题,请参考以下文章