完成自动加载类文件案例

Original 2019-04-11 00:02:57 193
abstract://index.php //********************************************************* <?php         // 回调函数拼接不可以用逗号         s
//index.php
//*********************************************************
<?php

        // 回调函数拼接不可以用逗号
        spl_autoload_register(function($className){
            require __DIR__ . './public/'. $className .'.php';
        });


        $boy = new Boy('小明','足球','20');
        // 获取年龄方法(private)
        $boy->getAge();
        echo '<hr>';
        // 获取名字属性(public)
        echo $boy ->name;
        echo '<hr>';
        // 获取爱好方法(protected)
        $boy ->getInterest();
        echo '<hr>';

 ?>
//./public/Boy.php
//*********************************************************
<?php
    class Boy
    {  
        public $name;
        protected $interest;
        private $age;

        // 构造函数,$name 名字,$interest 爱好,$age 年龄
        public function __construct($name,$interest,$age)
        {
            $this->name = $name;
            $this->interest = $interest;
            $this ->age = $age;
        }

        public function getAge(){       
            $age = $this->age;
            switch($age){
                case $age<=0:
                    echo '年龄出错啦';
                    break;
                case $age<10:
                    echo '我'.$age.'岁了,请叫我小朋友';
                    break;
                case $age<25:
                    echo '我'.$age.'岁了,请叫我靓仔';
                    break;
                case $age <50:
                    echo '我'.$age.'岁了,请叫我大叔';
                    break;
                case $age >= 50:
                    echo '我'.$age.'岁了,请叫我爷爷';
                    break;
                default:
                    echo '年龄出错啦';
                    break;
            }
        
        }

        public function getInterest(){
            $res = $this ->interest;
            if($res =='篮球'){
                echo '我喜欢打',$res,',以前比赛得过一等奖。';
            }elseif($res =='足球'){
                echo '我喜欢打',$res,',曾经在比赛中得过二等奖。';
            }else{
                echo $res,'这是个什么运动?我不喜欢。';
            }      
        
        }
    }

?>


spl_autoload_register()当实例化一个对象时会执行该函数中的回调函数,加载访问类文件时尽量用绝对路径。

public function __construct()函数为构造函数,在实例化中会执行该函数。主要用于初始化对象属性等。。

public   表明该对象成员权限为公开,外部可以直接访问。       

  protected (成员保护:对本类和下属继承对象中共享开放),private (成员私有:仅在本类中开放使用) 。表明该对象成员权限为保护和私有。外部不可直访问,外部需要获取时仅可以在类本身内开放的接口调用获取。

Correcting teacher:天蓬老师Correction time:2019-04-11 09:02:34
Teacher's summary:只要是符合PSR-4标准的类, 都可以用这个方法进行自动加载的

Release Notes

Popular Entries