类加载,__construct(),

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

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();


?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值