<?php
//PHP工厂模式
//工厂类
class Factory{
/*
* 生产对象
* @param1 string $class,要得到的对象的类的类名
* @return object,对应类的对象
*/
public static function getInstance($class){
//加载类
if(self::autoload($class)){
//存在类
return new $class();
}else{
//不存在类
return false;
}
}
/*
* 加载类
* @param1 string $class,需要加载的类名
* @return 如果加载失败返回false
*/
private static function autoload($class){
//判断文件是否存在:要指定路径
if(is_file("{$class}.class.php")){
//加载
include_once "{$class}.class.php";
}elseif(is_file("../20150109/{$class}.class.php")){
include_once "../20150109/{$class}.class.php";
}else{
//加载失败
return false;
}
//成功
return true;
}
}
//调用工厂类获取对象
$db = Factory::getInstance('MyDB');
var_dump($db);