zoukankan      html  css  js  c++  java
  • ThinkPHP的A方法,R方法,M方法,D方法区别

     

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

     1 <?php
     2 namespace AdminController;
     3 use ThinkController;
     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 AdminController;
     3 use ThinkController;
     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 ModelTestModel;
    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

  • 相关阅读:
    Python数据抓取(3) —抓取标题、时间及链接
    Python数据抓取(2) —简单网络爬虫的撰写
    Python数据抓取(2) —简单网络爬虫的撰写
    Apache 显示网页
    Linux 启动 Apache 时报错:(98)Address already in use: make_sock: could not bind to address [::]:80
    Shell编程 之 条件判断式语句
    Shell编程 之 字符处理命令
    Shell编程 之 字符截取命令
    Shell编程 之 正则表达式
    Shell编程 之 环境变量配置文件
  • 原文地址:https://www.cnblogs.com/lovebing/p/6442438.html
Copyright © 2011-2022 走看看