类加载,__construct(),

来源:互联网 发布:广州淘宝拍摄基地在哪 编辑:程序博客网 时间:2024/06/08 08:49

类是一种结构: 如果要访问类,前提是类在内存中存在.
类一般是一个单独的文件: 若要使用类就得加载类.

1. 手动加载

在使用类之前,手动的将类对应的文件给包含进来

publicController.class.php
<?php/** * * @authors weikeduopp * @date    2017-04-20 14:20:29 * @version $Id$ */header("content-type:text/html;charset=utf-8");class publicController {    public function index(){        // echo "index方法被访问的时候,弹出html页面";        include "./view/index.html";    }}?>
<?php/** * * @authors weikeduopp * @date    2017-04-20 14:30:50 * @version $Id$ */    //面向过程的编程思想,考虑的是, 有什么函数可以帮助我们加载首页    //调用外部文件include       引入外部html.呈现给用户    // include "./view/index.html";//路径   ./当前目录    // 目录要统一,前后都要是./    //    //兄弟  include_once 只加载一次. 过滤重复.    // 面向对象的思想.    // 要用什么类,需把类文件加载进来.    include_once './controller/publicController.class.php';    $a = new publicController();    $a->index();  //加载首页.?>

2. 自动加载

自动加载: 系统会给提供一种机制: 如果系统当前要用类(实例化),但是系统又没有在内存中找到对应的类: 机制就会被触发, 可以通过被触发的机制,修改机制的内部,使得能够按照某个通用的规则将类文件进行加载到内存.

魔术函数: __autoload()

自动加载需要判断文件是否存在:存在才加载,不存在就不管

<?php/** * * @authors weikeduopp * @date    2017-04-20 15:40:39 * @version $Id$ */    header("content-type:text/html;charset=utf-8");    // class test{    //     public $name;    //     private $money = 10;    //     // 析构方法: __destruct(), 当对象被销毁之前,对象会自动调用的方法.    //     // 作用: 释放所有的资源.(PHP中自动释放资源: 很少使用析构方法)    //     //    //     public    // }    // 类加载    // 1.手动---include    //    // 2.自动加载: 系统会给提供一种机制: 如果系统当前要用类(实例化),但是系统又没有在内存中找到对应的类: 机制就会被触发, 可以通过被触发的机制,修改机制的内部,使得能够按照某个通用的规则将类文件进行加载到内存.    // 魔术函数: __autoload() //先做了解.这个现在是用    function __autoload($class){        // echo $class;        // include_once "./controller/{$class}.class.php";        // 自动加载需要判断文件是否存在:存在才加载,不存在就不管  file_exists==>检查path        if( file_exists("./controller/{$class}.class.php") ){  //is_file()检查文件或目录是否存在            include_once "./controller/{$class}.class.php";        }    }    // 加载==>类publicController    $a = new publicController;//$class=>publicController    // $a->index();?>

自动加载引入多个类文件

这里写图片描述


file_exists==>检查path.
is_file()检查文件或目录是否存在.

引入首页,路径用的是相对路径.目录要统一,前后都要是同一方式,方便引入修改.

路径

创建类.
格式


__construct(), 类在形成对象的过程中(实例化),之后会被形成的对象自动调用的方法: 构造对象.

<?php/** * * @authors weikeduopp * @date    2017-04-20 15:40:39 * @version $Id$ */    header("content-type:text/html;charset=utf-8");    class test{        public $name;        private $money = 10;        // 构造方法的作用: 构造对象, 为了初始化属性        // 初始化        // __construct(), 类在形成对象的过程中(实例化),之后会被形成的对象自动调用的方法: 构造对象.        public function __construct($name,$money){            // $this是一种能够在对象调用方法的时候            echo __METHOD__;            // echo __FUNCTION__;            $this->name = $name;            $this->money = $money;        }        public function getMoney(){            echo $this->money;        }        //  构造方法的方法名字不叫__construct而是与类名同名   注意: 在高版本中已经不使用,有时候为了做兼容,会做两个构造方法        // public function test($name,$num){        // }    }    $a = new test("狗蛋",100);    echo $a->name;    // 私有成员的访问就是在类定义的方法中进行访问.    // 方法内部不能直接访问属性名字: 系统会当做局部变量    $a->getMoney();?>
0 0
原创粉丝点击