- PHP 教程
- PHP - 首页
- PHP - 简介
- PHP - 安装
- PHP - 历史
- PHP - 特性
- PHP - 语法
- PHP - Hello World
- PHP - 注释
- PHP - 变量
- PHP - Echo/Print
- PHP - var_dump
- PHP - $ 和 $$ 变量
- PHP - 常量
- PHP - 魔术常量
- PHP - 数据类型
- PHP - 类型转换
- PHP - 类型混杂
- PHP - 字符串
- PHP - 布尔值
- PHP - 整数
- PHP - 文件与I/O
- PHP - 数学函数
- PHP - Heredoc & Nowdoc
- PHP - 复合类型
- PHP - 文件包含
- PHP - 日期与时间
- PHP - 标量类型声明
- PHP - 返回类型声明
- PHP 运算符
- PHP - 运算符
- PHP - 算术运算符
- PHP - 比较运算符
- PHP - 逻辑运算符
- PHP - 赋值运算符
- PHP - 字符串运算符
- PHP - 数组运算符
- PHP - 条件运算符
- PHP - 展开运算符
- PHP - 空值合并运算符
- PHP - 比较运算符(飞船运算符)
- PHP 控制语句
- PHP - 决策语句
- PHP - If…Else 语句
- PHP - Switch 语句
- PHP - 循环类型
- PHP - For 循环
- PHP - Foreach 循环
- PHP - While 循环
- PHP - Do…While 循环
- PHP - Break 语句
- PHP - Continue 语句
- PHP 函数
- PHP - 函数
- PHP - 函数参数
- PHP - 按值传递
- PHP - 按引用传递
- PHP - 默认参数
- PHP - 具名参数
- PHP - 可变参数
- PHP - 返回值
- PHP - 传递函数
- PHP - 递归函数
- PHP - 类型提示
- PHP - 变量作用域
- PHP - 严格类型
- PHP - 匿名函数
- PHP - 箭头函数
- PHP - 可变函数
- PHP - 局部变量
- PHP - 全局变量
- PHP 超全局变量
- PHP - 超全局变量
- PHP - $GLOBALS
- PHP - $_SERVER
- PHP - $_REQUEST
- PHP - $_POST
- PHP - $_GET
- PHP - $_FILES
- PHP - $_ENV
- PHP - $_COOKIE
- PHP - $_SESSION
- PHP 文件处理
- PHP - 文件处理
- PHP - 打开文件
- PHP - 读取文件
- PHP - 写入文件
- PHP - 文件是否存在
- PHP - 下载文件
- PHP - 复制文件
- PHP - 追加文件
- PHP - 删除文件
- PHP - 处理CSV文件
- PHP - 文件权限
- PHP - 创建目录
- PHP - 列出文件
- 面向对象PHP
- PHP - 面向对象编程
- PHP - 类与对象
- PHP - 构造函数和析构函数
- PHP - 访问修饰符
- PHP - 继承
- PHP - 类常量
- PHP - 抽象类
- PHP - 接口
- PHP - 特性
- PHP - 静态方法
- PHP - 静态属性
- PHP - 命名空间
- PHP - 对象迭代
- PHP - 封装
- PHP - final 关键字
- PHP - 重载
- PHP - 克隆对象
- PHP - 匿名类
- PHP Web开发
- PHP - Web 概念
- PHP - 表单处理
- PHP - 表单验证
- PHP - 表单邮件/URL
- PHP - 完整表单
- PHP - 文件包含
- PHP - GET & POST
- PHP - 文件上传
- PHP - Cookies
- PHP - Sessions
- PHP - Session 选项
- PHP - 发送邮件
- PHP - 输入过滤
- PHP - Post-Redirect-Get (PRG)
- PHP - 闪存消息
- PHP 高级
- PHP - MySQL
- PHP.INI 文件配置
- PHP - 数组解构
- PHP - 代码规范
- PHP - 正则表达式
- PHP - 错误处理
- PHP - Try…Catch
- PHP - Bug 调试
- PHP - 针对C语言开发人员
- PHP - 针对Perl开发人员
- PHP - 框架
- PHP - Core PHP vs. 框架
- PHP - 设计模式
- PHP - 过滤器
- PHP - JSON
- PHP - 异常
- PHP - 特殊类型
- PHP - 哈希
- PHP - 加密
- PHP - is_null() 函数
- PHP - 系统调用
- PHP - HTTP 认证
- PHP - 交换变量
- PHP - Closure::call()
- PHP - 过滤后的 unserialize()
- PHP - IntlChar
- PHP - CSPRNG
- PHP - 预期
- PHP - use 语句
- PHP - 整数除法
- PHP - 已弃用的特性
- PHP - 已移除的扩展和SAPI
- PHP - PEAR
- PHP - CSRF
- PHP - FastCGI 进程
- PHP - PDO 扩展
- PHP - 内置函数
- PHP 有用资源
- PHP - 速查表
- PHP - 问答
- PHP - 快速指南
- PHP - 在线编译器
- PHP - 有用资源
- PHP - 讨论
PHP – 类与对象
类和对象的概念是PHP面向对象编程方法的核心。类是对其对象的模板描述。它包括处理属性的属性和函数。对象是其类的实例。它的特点是类中定义的属性和函数。
在PHP中定义类
要定义一个类,PHP有一个关键字“class”。同样,PHP提供关键字“new”来声明任何给定类的对象。
在PHP中定义新类的通用形式如下:
<?php class phpClass { var $var1; var $var2 = "constant string"; function myfunc ($arg1, $arg2) { [..] } [..] } ?>
关键字class后跟要定义的类的名称。类名遵循与PHP变量相同的命名约定。后面是一对花括号,其中包含任意数量的变量声明(属性)和函数定义。
变量声明以另一个保留关键字var开头,后跟常规的$variable名称;它们也可以初始赋值为常数值。
函数定义看起来很像独立的PHP函数,但它们是局部于类的,将用于设置和访问对象数据。类中的函数也称为方法。
示例
以下是一个定义Book类型的类的示例:
class Book { /* Member variables */ var $price; var $title; /* Member functions */ function setPrice($par){ $this->price = $par; } function getPrice(){ echo $this->price ."<br/>"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ." <br/>"; } }
伪变量$this在从对象上下文中调用方法时可用。$this指的是调用对象。
Book类有两个成员变量(或属性)- $title和$price。成员变量(有时也称为实例变量)通常对于每个对象都有不同的值;例如,每本书都有一个与其他书不同的标题和价格。
Book类具有函数(在类中定义的函数称为方法)setTitle()和setPrice()。这些函数是通过引用对象和参数调用的,用于分别设置标题和价格成员变量的值。
Book类还具有getTitle()和getPrice()方法。调用时,它们将返回传递引用的对象的标题和价格。
定义类后,可以使用new运算符声明一个或多个对象。
$b1 = new Book; $b2 = new Book;
new运算符分配每个对象成员变量和方法所需的内存。这里我们创建了两个对象,这些对象彼此独立,它们将分别存在。
每个对象都可以使用“->”运算符访问其成员变量和方法。例如,b1对象的$title属性是“$b1->title”,要调用setTitle()方法,请使用“$b1->setTitle()”语句。
要设置b1对象的标题和价格,
$b1->setTitle("PHP Programming"); $b1->setPrice(450);
同样,以下语句获取b1书的标题和价格:
echo $b1->getPrice(); echo $b1->getTitle();
示例
下面是定义Book类、声明两个对象并调用成员函数的完整PHP脚本。
<?php class Book { /* Member variables */ var $price; var $title; /* Member functions */ function setPrice($par){ $this->price = $par; } function getPrice(){ echo $this->price ."\n"; } function setTitle($par){ $this->title = $par; } function getTitle(){ echo $this->title ."\n"; } } $b1 = new Book; $b2 =new Book; $b1->setTitle("PHP Programming"); $b1->setPrice(450); $b2->setTitle("PHP Fundamentals"); $b2->setPrice(275); $b1->getTitle(); $b1->getPrice(); $b2->getTitle(); $b2->getPrice(); ?>
它将产生以下输出:
PHP Programming 450 PHP Fundamentals 275