zoukankan      html  css  js  c++  java
  • 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__  //当前页面地址


      

  • 相关阅读:
    增量更新代码步骤记录
    软件缺陷管理基本流程
    数据库语言(三):MySQL、PostgreSQL、JDBC
    eclipse的使用
    数据库语言(二):SQL语法实例整理
    windows下MySql没有setup.exe时的安装方法
    数学:完全独立于实际场景的情况下定义的概念,可以正确的描述世界
    数学语言和程序语言的对比:面向过程与面向集合&命题
    iOS开发之IMP和SEL(方法和类的反射)
    iOS之UIButton的normal和selected状态切换
  • 原文地址:https://www.cnblogs.com/zhangqifeng/p/1520096.html
Copyright © 2011-2022 走看看