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();
分享到:
相关推荐
这篇博客“面向对象设计 1 —— PHP5面向对象基础(基础部分)”可能详细讲解了PHP5中面向对象的基础知识,包括类、对象、封装、继承和多态等核心概念。 1. 类与对象 在PHP5中,类是创建对象的模板,它定义了一组属性...
这篇博客“面向对象设计 2 —— PHP5面向对象基础(实例部分)”可能详细讲解了如何在PHP5中应用面向对象编程的基本原理和实践。在本文中,我们将深入探讨这些关键知识点,并结合提供的文件名,推测其可能包含的具体...
这篇博客“面向对象设计 4 —— PHP5面向对象进阶(属性的访问控制)”着重讲解了如何在PHP5中通过访问控制来保护类的内部状态,确保代码的封装性和安全性。 在PHP5中,我们可以为类的属性设置三种访问修饰符:public...
面向对象设计是编程领域中的一个重要概念,特别是在PHP5及更高版本中得到了显著强化。本教程主要探讨PHP5的面向对象进阶特性,特别是类的重写(Override)机制。通过以下列出的源码文件,我们可以深入理解这一概念。...
标题和描述概述的知识点主要集中在PHP面向对象编程的基础概念、应用以及高级特性上。下面将对这些知识点进行详细的解析和扩展。 ### PHP面向对象编程概览 PHP是一种广泛使用的脚本语言,支持多种编程范式,包括...
"PHP开源在线学习系统——课廊"是一款基于PHP开发的教育平台,名为Claroline,它致力于为教育者和学生提供一个高效、灵活的在线学习环境。这个系统是开源的,这意味着用户可以自由地查看、使用、修改其源代码,根据...
《深入PHP面向对象、模式与实践》第三版是一本针对PHP开发者深入理解面向对象编程、设计模式和实战技巧的专业书籍。作者通过清晰的讲解和丰富的实例,帮助读者提升PHP编程能力,实现更高层次的软件开发。 PHP是一种...
《新手学html5 移动开发——面向ios 和android 平台》的第i部分从第1章~第8章。第1章首先介绍了html4.01的基本原理,第2章通过生动且复杂的教程介绍了html5,其中包含了大量实例和屏幕截图。第3章详细介绍了css。在...
在本讲中,我们将深入探讨PHP...通过学习 `(第22讲) PHP面向对象开发的学习(六)` 的内容,并参考提供的资料如第22讲.ppt和PHP100-22.wmv,开发者将能更深入地掌握这些面向对象编程的关键概念,从而提升PHP开发技能。
本视频教程"PHP100视频教程20:PHP面向对象开发的学习(四)"深入探讨了这些面向对象的特性,并通过实例演示了如何在实际项目中应用。 首先,我们要理解**类**是对象的模板,它定义了一组属性和方法,这些属性描述...
在本讲中,我们将深入探讨PHP面向对象编程的四个关键概念:对象描述的配置、对象方法的异常处理、克隆对象的应用以及自动载入对象的方法。这些知识点是PHP开发中的重要组成部分,对于提升代码的组织结构和可维护性至...
【描述】"PHP实例开发源码——phpBB 3.1.9 繁体中文版" 暗示了这个压缩包内包含的资源适合学习和研究PHP开发,特别是对phpBB框架有兴趣的开发者。它可能包括了完整的前端和后端源代码,数据库结构,以及本地化文件,...
《深入PHP面向对象模式与实践第2版》是一本专注于PHP面向对象编程的书籍,它不仅涉及到面向对象编程的基础知识,还深入讲解了面向对象设计模式以及如何在实际项目中应用这些模式。该书是对PHP开发者掌握面向对象技术...
7. 面向对象:从PHP4和PHP5开始,支持面向对象编程,适合开发大型应用程序。 【静态化与缓存】 在PHP中,静态化和缓存技术用于提高网站性能。静态化是指将动态生成的页面转换为静态HTML,减少服务器处理负担,提高...
《深入PHP:面向对象、模式与实践》是PHP开发领域的一本经典著作,尤其是第三版,它涵盖了PHP编程中的核心概念、高级技巧以及最佳实践。这本书深入探讨了PHP的面向对象编程(OOP),设计模式,以及实际项目中的应用...
在本讲中,我们将深入探讨PHP的面向对象编程(OOP)中的一个重要概念——抽象。在PHP中,面向对象编程是一种强大的设计模式,它允许我们创建具有封装、继承和多态性的复杂系统。抽象是这一过程中的关键元素,它帮助...
《深入PHP:面向对象、模式与实践》是一本专注于PHP编程技术的专业书籍,它涵盖了PHP开发中的核心概念、面向对象编程、设计模式以及最佳实践。这本书对于PHP开发者来说,是提升技能、深化理解的重要资源。 首先,让...
PHP实例开发源码——PHP版 防火墙
类的继承和应用1、继承关键字 :extends PHP类的继承,我们可以理解成共享被继承类的内容。PHP中使用extends单一继承的方法,请切忌!(非C++多继承)被继承的类我们叫做父类(基类)继承者成为子类(派生类)2、...
面向对象的三大特性——继承、封装和多态性,在PHP中也有很好的支持。 - **继承**:允许一个类(子类)继承另一个类(父类)的属性和方法。在PHP中,子类通过`extends`关键字实现继承。例如,我们可以创建一个`...