1. 建立类
class MyPc {
var $key;
// 建议使用public,而不是var
public $name;
public function vod() {
echo "PHP 100 视频教程";
}
}
// 输出PHP 100 视频教程
$pc1 = new MyPc();
$pc1->vod();
2. 对象中的$this关键字、__construct()构造函数和析构函数__destruct()
PHP4
的时候使用function MyPc()
进行初始化
class MyPc {
public $name;
function __construct($name) {
$this->name = $name;
}
public function vod() {
//echo "PHP 100 视频教程";
echo $this->name;
}
// 规则:后进先出:先释放后建立的对象
// 垃圾回收机制
function __destruct() {
// ...
}
}
// 输出PHP 100 视频教程
$pc1 = new MyPc("PHP 100 视频教程");
$pc1->vod();
3. 类的封装和应用
封装关键字:public, protected, private
封装相关函数:
private $name;
function __set($name, $value) {
$this->$name = $value;
}
function __get($name) {
}
// 赋值
$pc1->name = "sss";
// 取值
echo $pc1->name;
4. 类的继承和应用
继承关键字:extends
重载:
class Root {
function dayin() {
return "Root print <br>";
}
}
class Son extends Root {
function dayin() {
// 重载dayin()函数
return Root::dayin()."Son print<br>";
}
}
// 输出Root print
// Son print
$p = new Son();
echo $p->dayin();
5. 类的抽象方法和类
一个类中至少有一个
方法是抽象的
不可实例化
,只能用它的继承类来实例化
抽象方法不允许有{}
抽象关键字:abstract
abstract class cl1{
abstract function fun1();
}
class cl2 extends cl1 {
function fun1() {
echo "第一个";
}
}
6. 类中常用关键字
关键字:final
当定义类
的时候该类将不能被继承
,当用来定义方法
的时候该方法将不能被重载
关键字:self
- 用来用类访问当前类中的内容的关键字,类似与$this
关键字,但$this是需要类实例化以后才可以使用,self 可以直接访问
当前类中的内部成员
- self一般用来访问类中的:静态成员
,常量
,或者其他定义内容
关键字:static
-
用来定义类的静态属性或方法,可以在类未被实例化
时使用,静态属性单独占用内存而不会因创建多个对象时而导致同样的方法或者属性重复占用。
-
静态方法内部禁止出现非
静态内容
-
$this不能访问
静态属性
关键字:const
用来定义类中的常量,类似PHP外部定义常量
的关键字define()
const只能修饰类当中的成员属性
建议大写
常量
常量不使用$
符号
final class MyPc {
// 静态属性
static $name = "我的电脑";
// 常量
const USER = "我的";
final function power() {
echo self::$name."电脑开机中......"."<br>";
echo self::USER;
}
}
$p = new MyPc();
$p->power();
// 直接访问静态属性
echo MyPc::$name;
7. 类中接口的应用
先
继承后
接口,单
继承多
接口
关键字:interface、implements
抽象类:
1、类中至少有一个抽象方法
2、抽象方法前需加abstract
接口:
1、类中全部为抽象方法
2、抽象方法前不用加abstract
3、接口抽象方法属性为public
4、成员属性必须为常量
共同点:
1、本身都不能被实例化,必须被继承或者引用
2、继承或者引用后,需要把所有抽象方法重载方可使用
interface demo {
const NAME = "名称";
function fun1();
}
interface demo2 {
function fun2();
}
class mypc implements demo, demo2 {
function fun1() {
echo "======";
}
function fun2() {
echo "======";
}
}
8. 类中多态的应用
instanceof
用来测定一个给定的对象是否来自
指定的对象类
class A {}
class B {}
$thing = new A;
if ($thing instanceof A) {
echo 'A';
}
if ($thing instanceof B) {
echo 'B';
}
9. 总结篇
对象描述的配置
:__tostring()
class My {
function __tostring() {
echo "test";
}
}
$p = new My();
echo $p;
对象方法的异常处理
:__call($funname, $arr_value)
// 调用一些不存在的对象方法的异常处理,使程序继续正常运行
class My {
function __call($n, $v) {
echo "错误的方法名".$n;
echo "错误的参数".print_r($v);
}
}
克隆对象的应用
:__clone()
class My {
function __clone() {
echo "克隆时自动调用的函数";
}
}
$a = new My();
$b = clone $a;
自动载入对象的方法
:__autoload()
// 快速取得对象名称并自动载入进当前页面
function __autoload($class_n) {
// include("mypc.php");
include($class_n.".php");
}
$p = new Mypc();
$d = new demo();
分享到:
相关推荐
NULL 博文链接:https://llying.iteye.com/blog/341552
NULL 博文链接:https://llying.iteye.com/blog/339812
NULL 博文链接:https://llying.iteye.com/blog/339800
NULL 博文链接:https://llying.iteye.com/blog/342196
NULL 博文链接:https://llying.iteye.com/blog/339988
NULL 博文链接:https://llying.iteye.com/blog/340045
关于php面向对象的要点精炼凝结,适合记忆理解
《新手学html5 移动开发——面向ios 和android 平台》的第i部分从第1章~第8章。第1章首先介绍了html4.01的基本原理,第2章通过生动且复杂的教程介绍了html5,其中包含了大量实例和屏幕截图。第3章详细介绍了css。在...
20140207PHP01_PHP面向对象程序设计.pdf
PHP实例开发源码——PHP版 防火墙
PHP100视频教程20:PHP面向对象开发的学习(四)
本书全面深入地剖析了面向对象的PHP编程与设计。首先介绍了PHP的OO特性,包括类声明、对象实例化、继承、方法..., 本书适合每位PHP程序员进阶参考,帮助他们掌握PHP面向对象设计和开发的精髓,跻身高端PHP程序员之列。
PHP网站实例开发源码——QeePHP 开发框架.zip
基于PHP面向对象的自定义MVC框架高级项目开发12天视频
PHP实例开发源码——PHP FexBook v1.0 Beta
关于php面向对象的教程关于php面向对象的教程关于php面向对象的教程
面向对象的思想已经涉及到软件开发的各个方 面。如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计 (OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现 (OOP,Object ...
1.7 小结 22 第2章 高级语法 23 2.1 PHP语法 23 2.2 定义常量 24 2.3 数组函数 25 2.4 PHP和OOP 31 2.4.1 类:PHP 3.0和PHP 4.0的对比 35 2.4.2 执行类 36 2.4.3 读取对象 37 2.4.4 构造函数 38 2.4.5 继承 38 2.4.6...
本书适合每位php程序员进阶参考,帮助他们掌握php面向对象设计和开发的精髓,跻身高端php程序员之列。 目录 第一部分 介绍 第1章 PHP:设计与管理 第二部分 对象 第2章 PHP与对象 第3章 对象基础...
深入PHP面向对象模式与实践第2版,是一本学习php面向对象知识的不可多得的一本好书。