• ThinkPHP学习笔记2


    1.关于类继承时候调用关系

          Action:
      
         class BaseAction extends Action  {
     
              function _initialize()
             {
            echo "initialize";
            $this->display("tests");
             }
     
              //function __construct()
              // {
              //  echo "construct";
        //      $this->display("tests");
              // }

        }
     
          class IndexAction extends BaseAction{
      
       function index()
       {
          echo"index";
       }
      
       }
      
       Tpl/default/Index/test.html模版页内容:tests!
      
       由上可看出IndexAction继承于BaseAction,
       我们通过页面访问index.php 时  它会实例化IndexAction 在自身没有显示的构造方法时,
       会先调用父类的构造方法,而_initialize又是什么呢,他是该类初始化时调用的
       注意它不是PHP特有的 是此框架的。而__construct()是PHP的。
      
       如上调用 会输出 initialize  tests   index  可以看到先是执行__initialize()方法  在执行index方法
      
       而在__initialize()方法内有个$this这个对象 其实他是IndexAction的实例对象,
      
       所以在执行display时会去找index目录下的模版文件。为什么要用这方法呢?
      
       __construct()不是也可以啊,不行 在执行 __construct()时,该对象其实是还没被实例化,执行 __construct()一试,
      
       那$this就会报$this non-object错误! 当两者方法共存时候 只会调用 __construct()内的.

    如果使用了内置模板引擎的话,可以在模板文件里面使用一些已经定义好的特殊字符串,系统在解析模板的时候会自动替换成相关的系统常量,这些字符串的解析过程是在模板编译的时候进行的。这些可替换的字符串包括:

    ../public     //项目公共目录

    __PUBLIC__    //网站公共目录

    __ROOT__       //网站根目录

    __TMPL__//当前模板目录

    __APP__    //当前项目地址

    __URL__   //当前模块地址

    __ACTION__     //当前操作地址

    __SELF__  //当前页面地址


      

  • 相关阅读:
    自学java--5
    自学java--4
    自学java--3
    自学java--2
    自学java--1
    java中的IO操作---File类
    TCP/UDP编程实例
    什么是服务端与客户端详解
    【提高组】并查集
    【ToDoList】自己选择的路跪着也要走下去
  • 原文地址:https://www.cnblogs.com/zhangqifeng/p/1520096.html
Copyright © 2020-2023  润新知