PHP instanceof&autoload

24 阅读1分钟

instanceof

使用instanceof可以判断某个值是否属于某个类

class A{
}
class B{
}
$obj = new A;
var_dump($obj instanceof A); // true
var_dump($obj instanceof B); // false

类似python的isinstance方法,可以对对象进行父类的所属判断

autoload

当我们new一个类时,如果当前源文件中找不到这个类,PHP 则会自动调用 __autoload() 函数,并将类名传递给__autoload() 函数

所以可以通过定义__autoload方法实现自动的类对象文件引入


function __autoload($class){
    include_once($class . '.php');
}

$a = new A;

如果初始化类A,但是A不存在当前作用域,那么会自动导入当前环境目录下的A,


在PHP7.2.0后可以使用spl_autoload_register函数替代被弃用的__autoload方法

这个方法的参数为指定的另一个函数用来替代__autoload方法

spl_autoload_register('loadClass');
function loadClass($class){
    $file = './'.$class.'.php';
    include_once($file);
}
$obj = new Demo();