spl_autoload_register() 自动加载类

原创 2019-04-28 15:46:03 375
摘要:<?php /* __autoload() 已淘汰 s表示standard p表示PHP l表示library spl_autoload_register() 类自动加载 此函数不但可以自动加载类 也可以自动加载其他文件 include "init/Cart.php"; include&nbs
<?php
/*
	__autoload() 已淘汰
	
	s表示standard p表示PHP l表示library
	spl_autoload_register() 类自动加载
	此函数不但可以自动加载类 也可以自动加载其他文件
	
	include "init/Cart.php";
	include "init/Phone.php";
*/ 

# 自动加载器: 最重要的一个参数就是一个回调
spl_autoload_register(function($className){
	include __DIR__.'/init/'.$className.'.php';
	echo '类名是: '.$className,'<br>';
});

# 当你new 一个类的时候自动回查找include或者require是否有引入类
# 没有的情况下就执行spl_autoload_register()
# 一个匿名函数作为参数
# 回调函数中的$className形参 是你实例化的类名通过类名查找 
$cart = new Cart('丰田','卡罗拉','200000');
$phone = new Phone('华为','P20','5999');
echo $cart->brand.$cart->model.'价格: '.$cart->price,'<br>';
echo $phone->brand.$phone->model.'价格: '.$phone->price;

Cart.php

<?php
class Cart
{
	public $brand;
	public $model;
	public $price;
	
	public function __construct($brand, $model, $price)
	{
		$this->brand = $brand;
		$this->model = $model;
		$this->price = $price;
	}
}

Phone.php

<?php
class Phone
{
	public $brand;
	public $model;
	public $price;
	
	public function __construct($brand, $model, $price)
	{
		$this->brand = $brand;
		$this->model = $model;
		$this->price = $price;
	}
}


批改老师:天蓬老师批改时间:2019-04-29 09:18:12
老师总结:面向对象一个重要特征就是封装, 对外封闭, 对外开放...

发布手记

热门词条

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号