首页 > 技术文章 > final关键字,类的自动加载,命名空间

123456xfxf 2017-07-21 14:55 原文

final关键字

1.final可以修饰方法和类,但是不能修饰属性;

2.Final修饰的类不能被继承;

3.Fina修饰的方法不能被重写,子类可以对已被final修饰的父类进行访问,但是不能对父类的方法进行重写。

 

 

扩展内容:

类的自动加载:

什么是类的自动加载?

Spl_autoload_register():注册给定的函数作为__autoload()函数的实现

类的自动加载

在最开始使用的是__autoload()进行自动加载,但是在PHP5.3之前,__autoload函数抛出的异常不能被catch语句块捕获并会导致一个致命的错误,出现spl_autoload_register(),__autoload()无法进行修正,如果一旦修正,就会涉及源代码。对于__autoload()官方只是不推荐使用,但是不代表不使用,在平时的某些练习时使用__autoload()也是很方便的。

 

 

 

 

命名空间:

什么是命名空间:从广义上来说,命名空间是一种封装事物的方法。

简单来说其实

关键字:namespace

在一个页面可以定义多个命名空间,但是尽量在一个页面使用一个命名空间

 

namespace必须声明在所有代码的最前面。

__NAMESPACE__:魔术常量,当前定义的命名空间,如果没有声明命名空间的话,默认返回一个空的字符串。

 

几个魔术常量:

__LINE__:返回当前的行数

__FILE__:当前正在执行的文件的绝对路径

__DIR__:当前正在执行的文件夹的路径(绝对路径)

__FUNCTION__

 

在命名空间中起别名:

Use

   使用use可以指定加载的命名空间及其对应的类,同时在类名后面可以使用as关键字指定某个类的别名,一旦起了别名后吗,在当前文件中就可以使用这个别名来创建对应的类的对象

起别名的目的是为了简化。

推荐阅读