标签:order span cti 方式 声明 static ora UI 自己
1.Final关键字
含义:最终的,最后的
作用:
1.如果父类中的方法被声明为 final,则子类无法覆盖该方法。
如果一个类被声明为 final,则不能被继承。
2.属性不能被定义为 final,只有类和方法才能被定义为 final。
用法:直接在类或者方法前加final关键字。
---------------------------------------------------------------------------
2.类的自动加载
含义:
1.解决代码重复,把重复的代码写在一个文件夹中,让其他PHP文件调用自动加载。
2.解决PHP文件过多 include等引入PHP过于庞大造成负担。
实现函数:
spl_autoload_register() 函数:可以注册任意数量的自动加载器。
__autoload():尝试加载未定义的类 也能自动加载类和接口(不推荐,可能被弃用)。(注意:处理大量程序时使程序变得臃肿,无法实现,代码变复杂,给未来的系统维护和系统效率带来很大的负面影响)
注意:自动加载不可用于 PHP 的 CLI 交互模式。
php加载文件方式:
1、include,include_once,requice,requice_one常规加载
2、__autoload()
3、spl_autoload_register()
__autoload()自动加载
<?php
function
__autoload(
$class
){
$file
=
$class
.
‘.php‘
;//拼接路径
if
(
is_file
(
$file
)) { //判断$file是否存在
require_once
(
$file
); //从$file
路径导入一次
}
}
$a
=
new
A();
<?php
function
loader(
$class
){
$file
=
$class
.
‘.php‘
;
if
(
is_file
(
$file
)) {
require_once
(
$file
);
}
}
spl_autoload_register(
‘loader‘
);
$a
=
new
A();
<?php
spl_autoload_register(
function
(
$file
){
$file
=
$class
.
‘.php‘
;
if
(
is_file
(
$file
)) {
require_once
(
$file
);
}
});
$a
=
new
A();
这样子也是可以正常运行的,这时候php在寻找类的时候就没有调用__autoload而是调用我们自己定义的函数loader了。同样的道理,下面这种写法也是可以的:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php class Loader { public static function loadClass( $class ){ $file = $class . ‘.php‘ ; if ( is_file ( $file )) { require_once ( $file ); } } } spl_autoload_register( array ( ‘Loader‘ , ‘loadClass‘ )); //spl_autoload_register(array(__CLASS__, ‘loadClass‘)); //spl_autoload_register(array($this, ‘loadClass‘)); $a = new A(); |
标签:order span cti 方式 声明 static ora UI 自己
原文地址:http://www.cnblogs.com/jianjianbeibei/p/7226654.html