zoukankan      html  css  js  c++  java
  • php自动加载类

    先说一个魔术方法 

    __tostring()方法

    当我们在定义类中成员后,通过构建对象,我们无法直接通过输出对象得到对象的内容,这时我们可以通过构造一个魔术方法__tostring(),在构建对象的同时,启用这个魔术方法,从而达到直接输出对象内容的目的

    例子

    class Ren
    {
    public $name;

    public function __tostring()
    {
    return "该类是人类,name代表姓名";
    }
    }

    $r = new Ren();
    echo $r;

    克隆

    通过克隆的方法,可以不构建对象,直接克隆已经创建的对象,使克隆对象得到原对象的所有属性方法等全部内容

    克隆有两种方式 1.直接调用在类中通过克隆的方法来实现 2.外部通过构造克隆对象来实现

    class Ren
    {
    public $name="张三";

    public function __clone()      //克隆方法1
    {
    $this->name = "李四";
    }
    }

    $r = new Ren();

    $c = clone $r;           //克隆方法2,
    echo $r->name;
    echo $c->name

    加载类


    当本页面引用外部类文件时,通过加载类的方法来实现 (外部类的命名规则  类名.class.php)

    加载类的实现方法有下列几种

    1.    include("./Ren.class.php");   //会引用类的全部,包括错误,从而可能会引起本页面崩溃
    2.    include "./Ren.class.php";

    3.    require("./Ren.class.php");    //只会引用类的相关内容,不容易引入错误而产生的崩溃
    4.    require "./Ren.class.php";
    5.    require_once("./Ren.class.php");     //可以写多个而不会报错
    6.    require_once "./Ren.class.php";

    自动加载类  (__autoload)
    1.所有的类文件写在同一个目录下
    2.类文件的命名规则要一致
    3.类的文件名要和类名保持一致

     例:

      function __autoload($classname)
            {
              require_once("./".$classname.".class.php");
            }

  • 相关阅读:
    HDU 5115 Dire Wolf ——(区间DP)
    2016 ICPC 大连网络赛 部分题解
    CodeForces 707D Persistent Bookcase ——(巧妙的dfs)
    HDU 5806 NanoApe Loves Sequence Ⅱ ——(尺取法)
    【Permutations II】cpp
    【Permutations】cpp
    【Subsets II】cpp
    【Subsets】cpp
    【Search a 2D Matrix】cpp
    【Search Insert Position 】cpp
  • 原文地址:https://www.cnblogs.com/du892294464/p/6740981.html
Copyright © 2011-2022 走看看