php学习笔记(十)对象和类
来源:互联网 发布:淘宝怎么看天猫积分 编辑:程序博客网 时间:2024/06/05 16:39
PHP 对象
对象是存储数据和有关如何处理数据的信息的数据类型。
在 PHP 中,必须明确地声明对象。
首先我们必须声明对象的类。对此,我们使用 class 关键词。类是包含属性和方法的结构。
然后我们在对象类中定义数据类型,然后在该类的实例中使用此数据类型。
对象初始化
要创建一个新的对象 object,使用 new 语句实例化一个类:<?phpclass foo{ function do_foo() { echo "Doing foo."; }}$bar = new foo;$bar->do_foo();?>
class
每个类的定义都以关键字 class开头,后面跟着类名,后面跟着一对花括号,里面包含有类的属性与方法的定义。
类名可以是任何非 PHP 保留字的合法标签。一个合法类名以字母或下划线开头,后面跟着若干字母,数字或下划线。
一个类可以包含有属于自己的常量,变量(称为"属性")以及函数(称为"方法")。
<?phpclass SimpleClass{ // property declaration public $var = 'a default value'; // method declaration public function displayVar() { echo $this->var; }}?>
当一个方法在类定义内部被调用时,有一个可用的伪变量 $this。$this是一个到主叫对象的引用(通常是该方法所从属的对象,但如果是从第二个对象静态调用时也可能是另一个对象)。
new
要创建一个类的实例,必须使用 new关键字。当创建新对象时该对象总是被赋值,除非该对象定义了构造函数并且在出错时抛出了一个异常。类应在被实例化之前定义(某些情况下则必须这样)。
如果在 new 之后跟着的是一个包含有类名的字符串,则该类的一个实例被创建。如果该类属于一个名字空间,则必须使用其完整名称。
<?php$instance = new SimpleClass();// 也可以这样做:$className = 'Foo';$instance = new $className(); // Foo()?>
在类定义内部,可以用 new self 和 new parent 创建新对象。
当把一个对象已经创建的实例赋给一个新变量时,新变量会访问同一个实例,就和用该对象赋值一样。此行为和给函数传递入实例时一样。可以用克隆给一个已创建的对象建立一个新实例。
extends
一个类可以在声明中用 extends关键字继承另一个类的方法和属性。PHP不支持多重继承,一个类只能继承一个基类。
被继承的方法和属性可以通过用同样的名字重新声明被覆盖。但是如果父类定义方法时使用了 final,则该方法不可被覆盖。可以通过 parent::来访问被覆盖的方法或属性。
当覆盖方法时,参数必须保持一致否则 PHP 将发出 E_STRICT
级别的错误信息。但构造函数例外,构造函数可在被覆盖时使用不同的参数。
- php学习笔记(十)对象和类
- php学习笔记十:类与对象-基础
- PHP学习笔记 (类和对象)
- PHP学习笔记11:类和对象
- c++学习笔记(十):C++类和对象
- PHP学习笔记7(类和对象1)
- 我的php学习笔记(二十)php的面向对象开发(七)
- java学习笔记(十)类与对象
- python学习笔记十 类文件对象
- PHP学习笔记之MySQL(十)
- PHP学习笔记(十):HTML如何显示PHP中的变量和脚本中的变量
- C++的学习(十)类和对象
- C++学习(十)——类和对象
- php类和对象学习
- Java学习笔记(十)String类和StringBuffer类
- 学习Swift笔记 (十)Swift的类和结构
- 【小白笔记】PHP学习之路 (23) --对象 __set __get 类和对象的检测
- JS:正则表达式学习笔记(十) - 字符串对象方法
- 解析带小括号的算术表达式--------用栈来实现的java算法
- GNU ARM 汇编指令
- Hadoop读书笔记(四)HDFS体系结构
- 单路由器:一对多出口NAT技术+子接口NAT+(命名)扩展访问控制列表+多对一NAT技术实验
- c++实现atoi()和itoa()函数(字符串和整数转化)
- php学习笔记(十)对象和类
- Nodejs系列-1
- 关于自己的学习和工作
- ***(leetcode) Recover Binary Search Tree
- nginx源码分析--事件模块 & 琐碎
- ARM指令之--MVN
- 枋电OJ(HDOJ)2023题:求平均成绩(数组操作,水题)
- ContentProvider的使用指南
- PE文件格式详解