面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。下面我们为大家介绍一下php中类与对象的关系。
推荐教程:PHP视频教程
一、类和对象的关系
类的实体化结果是对象,而对象的抽象就是类。在开发过程中,我们通常都是先抽象(幻想)出一个类,再用该类去创建对象(实现幻想的内容)。在程序中,直接使用的是我们(实现幻想)的对象,而不是抽象(幻想)的类。
二、面向对象和面向过程
1、什么是面向过程
面向过程就好比一个人 自己洗衣服、做饭,什么事情都是自己解决
2、什么是面向对象
面向对象就是那个人有了对象,让对象去洗衣服、做饭。
三、如何抽象一个类
class 类名{ 成员属性: 姓名、性别、年龄、身高、体重 成员方法: 说话、走路、学习、吃饭、开车 }
所有的类都是从成员属性和成员方法这两方面去声明,属性和方法都是类中的成员,所以属性又叫做成员属性,方法又叫做成员方法
1、成员属性 -->特征
在对象中直接声明变量就称为成员属性,可以在类中声明多个成员变量,即对象中可以有多个成员属性
class Person{ var $name; //声明第一个成员属性,用于储存人的名字 var age; //声明第一个成员属性,用于储存人的年龄 var $sex; //声明第一个成员属性,用于储存人的性别 }
2、成员方法 -->功能
class Person{ var $name; //声明第一个成员属性,用于储存人的名字 var $age; //声明第一个成员属性,用于储存人的年龄 var $sex; //声明第一个成员属性,用于储存人的性别 function say(){ //声明第一个方法 echo '人在说话'; //定义人说话的功能 } function run(){ //声明第二个方法 echo '人在跑步'; //定义人跑步的功能 } function eat(){ //声明第三个方法 echo '人在吃饭'; //定义人吃饭的功能 } }
对象就是把相关的属性和方法组织在一起。其中成员属性和成员方法都是可以选的,可以只有成员属性,也可以只有成员方法,也可以没有成员。
四、实例化对象
一个类可以声明多个对象,让对象去访问成员属性和成员方法
class Person{ var $name; //声明第一个成员属性,用于储存人的名字 var $age; //声明第一个成员属性,用于储存人的年龄 var $sex; //声明第一个成员属性,用于储存人的性别 function say(){ //声明第一个方法 echo '人在说话'; //定义人说话的功能 } function run(){ //声明第二个方法 echo '人在跑步'; //定义人跑步的功能 } function eat(){ //声明第三个方法 echo '人在吃饭'; //定义人吃饭的功能 } } // 实例化对象 $sqyy = new Person(); //成员属性赋值 $sqyy -> name = "伊川"; $sqyy -> sex = "男"; $sqyy -> age = 26; //访问对象中的成员方法 $sqyy->eat();
五、特殊的对象引用 "$this"
上面的示例中,我们是实例化一个对象之后再给成员属性赋值和访问成员方法的。那么 $this也可以在成员方法中使用,代表的是当前的这个对象
成员方法调用前的对象是谁,$this就代表谁
class Person{ var $name; function info(){ $this ->name = "SQYY"; } }
六、构造方法与析构方法
1、构造方法
构造方法是对象创建完成后第一个被对象自动调用的方法,会初始化这个对象,当使用new关键字实例化对象时会自动触发。
<?php class Person{ //下面是声明人的成员属性,都是没有初始值的,在创建对象时,使用构造方法赋给初始值 var $name; //定义人的名字 var $sex; //定义人的性别 var $age; //定义人的年龄 function __construct($name="SQYY",$sex="男",$age=1){ $this -> name = $name; //在创建对象时,使用传入的参数$name为成员属性 $this->name赋初值 $this -> sex = $sex; //在创建对象时,使用传入的参数$sex为成员属性 $this->sex赋初值 $this -> age = $age; //在创建对象时,使用传入的参数$sex为成员属性 $this->age赋初值 } //下面声明人的成员方法 function say(){ echo "我的名字:" .$this ->name. " ,性别:" .$this -> sex ." 年龄" .$this ->age. "。<br>"; } } $person1 = new Person(); //创建对象$person1时会自动执行构造方法,默认传参 $person2 = new Person('张三'); //创建对象$person2时会自动执行构造方法,传入第一个参数,其他默认传参 $person3 = new Person('李四','男'); //创建对象$person3时会自动执行构造方法,传入前两个参数,其他默认传参 $person4 = new Person('王五','女','20'); //创建对象$person4时会自动执行构造方法,传入所有参数 $person1 ->say(); $person2 ->say(); $person3 ->say(); $person4 ->say(); ?>
运行结果
2、析构方法
对象在销毁之前最后一个被对象自动调用的方法,先创建 传入变量后销毁
<?php header('Content-type:text/html;charset=utf-8'); // 定义一个汽车的类 class car{ // 成员属性 public $name; public $color; //构造方法 public function __construct($name,$color){ $this->name = $name; $this->color = $color; echo "你创建了".$this->name.'<br>'; } // 析构方法 public function __destruct(){ echo "你销毁了".$this->name.'<br>'; } } // 实例化对象 $hanma = new car('悍马','粉色','H2'); $bmw = new car('宝马','红色','X7'); $benchi = new car('奔驰','黑色','s600'); // unset($bmw); $bmw = '1111'; ?>
运行结果
如果我们不引用变量,创建完对象之后就会销毁。
<?php header('Content-type:text/html;charset=utf-8'); // 定义一个汽车的类 class car{ // 成员属性 public $name; public $color; //构造方法 public function __construct($name,$color){ $this->name = $name; $this->color = $color; echo "你创建了".$this->name.'<br>'; } // 析构方法 public function __destruct(){ echo "你销毁了".$this->name.'<br>'; } } // 实例化对象 new car('悍马','粉色','H2'); new car('宝马','红色','X7'); new car('奔驰','黑色','s600'); ?>
运行结果
以上是php类和对象的关系的详细内容。更多信息请关注PHP中文网其他相关文章!

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

WebStorm Mac版
好用的JavaScript开发工具

Dreamweaver Mac版
视觉化网页开发工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

记事本++7.3.1
好用且免费的代码编辑器