PHP:面向对象学习笔记的基本概念之一

1 >如果( )等于(如果),因为非空字符串是真的
2 >检查数据类型:
is_array();
is_object();
is_string();
is_null();
is_integer();
3 > PHP5介绍类类型(类型提示),这是用来约束一个方法的参数类型(不是基本数据类型,但类):把类的名称所需的约束参数。
例如:函数编写(shopproduct shopproduct美元){ }

4 > instanceof运算符:如果左操作数对象的右操作数的类型,结果是真的
例如:如果($ shopproduct是bookproduct){ }

5 >继承子类扩展父级{ }
要调用父类的方法,如构造函数,父::__construct();

6 >静态方法和属性
类staticexample {
静态公共$;
静态公共函数(hello){ }
}
外部访问使用:
例如,打印staticexample::$;
内部访问使用自::
例如:自我;

7 >抽象类、抽象方法
抽象类xxx {

抽象函数(写入){; /否
}

抽象类的子类必须声明的方法及实现。新实现方法的访问控制不能比抽象方法的访问控制更严格。

8接口接口
只有定义的函数不包含实现。接口可以包含属性和方法声明,但是方法是空的;
例如:接口{
公共职能B();
}
任何实现接口的类都实现了接口中定义的所有方法,否则它必须是抽象类。
类在声明中使用实现接口的工具。
类商店实现{
公共函数B(){

}
}

9 >异常例外
PHP5引入异常类

10拦截拦截器
__get(美元财产);当调用访问属性
__set(美元财产价值);当调用分配一个未定义的属性
__isset(美元财产);未定义的属性时调用isset()使用;
__unset(美元财产);打电话时未定义的属性叫做unset();
__call($方法,arg_array美元);调用未定义的方法被称为
例如:实施__get()
复制代码代码如下所示:
功能__get(美元财产){
方法获取属性};
如果(method_exists($,$法)){
返回$ $ > $ $方法();
}
}

功能getName(){ return鲍勃;}

功能__isset(美元财产){
$方法=得到{ $性能};
返回(method_exists($,$方法));
}

功能__set(美元财产价值){
$设置{属性};
如果(method_exists($,$法)){
返回$ $ > $方法($值);
}
}


11、解构法__destruct()

12 > __clone();从克隆关键字的差异
类刻比美();
第一=新刻比美(美元);
二美元=第一美元;
/ / PHP4:第一、二美元美元是完全不同的两个对象;
第一 / / PHP5美元:美元和二指向同一个对象
在PHP5中,对象的分配和传递都参考。
如果你想复制,使用二美元美元=克隆第一; / /美元美元第一和第二是完全不同的两个对象(by_value,复印件)
如果你想控制复制,你要执行一个特殊的方法__clone()

13、自动加载:__autoload()
PHP5引入__autoload()拦截器方法自动包含类文件。当PHP遇到试图实例化一个未知的类的操作,它将尝试调用__autoload()类的名称作为字符串参数的方法和通过。
例如,一个非常简单的自动位置和包含策略:
功能__autoload($ className){
includ_once $名。PHP ;
}

====================
14 >使用字符串动态引用类
复制代码代码如下所示:
美元=任务的实现;
require_once(任务/ { $ className }。PHP );
美元美元()=新classname myobj时;
$方法= 和;
($ myobj时-> $方法); / /动态方法

15 >类函数和对象函数
复制代码代码如下所示:
(class_exist); / /检查是否有
(get_declared_classes); / /所有的类定义的过程中获得当前脚本(数组返回)
get_class_methods(公共); / /列表类的所有方法(数组)
(你method_exist美元,$方法); / /方法的对象或类的存在
(is_callable); / /不仅是一个对象或类,并可以访问
(get_class_vars); / /属性
get_parent_class(类或对象的名称); / /父类
(is_subclass_of); / /如果子类,不论与实例操作接口

16 >反射api
一组内置的类可以分析属性、方法、类和参数,可以动态地获取信息并动态调用方法。