目录
php面向对象编程(一),php面向对象编程(
首页 php教程 php手册 php面向对象编程(一),php面向对象编程(

php面向对象编程(一),php面向对象编程(

Jun 13, 2016 am 08:45 AM
面向对象编程

php面向对象编程(一),php面向对象编程(

类与对象关系:

类就像一个人类的群体 我们从类中实例化一个对象 就像是制定一个人。

 面向对象程序的单位就是对象,但对象又是通过类的实例化出来的,所以我们首先要做的就是如何来声明类, 做出来一个类很容易。

类的格式

class 类名 { }

类可以理解为一个人的群体,如果我们要把这个人介绍给别人 那么

首先, 你会介绍这个人姓名、性别、年龄、身高、体重、电话、家庭住址等等。

然后,你要介绍这个人能做什么, 可以开车, 会说英语, 可以使用电脑等等。

从定义的角度可以分为:

1.静态的描述 如:人的姓名、性别、年龄、身高、体重、电话、家庭住址等等 我们将静态的描述称为成员属性

    我们可以用var 来定义 如 var $description ;此时我们应该注意的是声明没有必要赋值 ,如人的名字叫小明 有可能在这个人群中找到几十个小明

2.动态描述  如:这个人可以开车, 会说英语, 可以使用电脑等等   我们将动态的描述称为成员方法

class 人
{
	成员属性:姓名、性别、年龄、身高、体重、电话、家庭住址
	成员方法:可以开车, 会说英语, 可以使用电脑
}
登录后复制
<?<span>php
</span><span>class</span><span> Person
{
    </span><span>//</span><span> 下面是人的成员属性</span>
    <span>var</span> <span>$name</span>;    <span>//</span><span>人的名子</span>
    <span>var</span> <span>$sex</span>;    <span>//</span><span>人的性别</span>
    <span>var</span> <span>$age</span>;    <span>//</span><span>人的年龄

    // 下面是人的成员方法</span>
    <span>function</span> say() <span>//</span><span> 这个人可以说话的方法</span>
<span>    { 
        </span><span>echo</span> "这个人在说话"<span>;
    } 

    </span><span>function</span> run() <span>//</span><span> 这个人可以走路的方法</span>
<span>    {
        </span><span>echo</span> "这个人在走路"<span>;
    }
}
</span>?>
登录后复制

当定义好一个类后 我们需要实例化那个类才能使用

用new的关键词 $对象名称 = new  类名称();

<?php
class Person
{
    //下面是人的成员属性
    var $name; //人的名子
    var $sex; //人的性别
    var $age; //人的年龄

    //下面是人的成员方法
    function say() { //这个人可以说话的方法
        echo "这个人在说话";
    } 

    function run() { //这个人可以走路的方法
        echo "这个人在走路";
    }
}

$p1=new Person();
$p2=new Person();
$p3=new Person();
?>
登录后复制

  现在我们示例化类已经好了我们就要去学会如何使用类中的成员

对象->属性 $p1->name; $p2->age; $p3->sex;

对象->方法 $p1->say(); $p2->run()

<?php
class Person
{
	// 下面是人的成员属性
	var $name;		// 人的名子
	var $sex;		// 人的性别
	var $age;		// 人的年龄

	// 下面是人的成员方法
	function say() // 这个人可以说话的方法
	{
		echo "这个人在说话";
	}

	function run() // 这个人可以走路的方法
	{
		echo "这个人在走路";
	}
}

$p1 = new Person(); //创建实例对象$p1
$p2 = new Person(); //创建实例对象$p2
$p3 = new Person(); //创建实例对象$p3

// 下面三行是给$p1对象属性赋值
$p1->name = "张三";
$p1->sex = "男";
$p1->age = 20;

// 下面三行是访问$p1对象的属性
echo "p1对象的名子是:" . $p1->name;
echo "p1对象的性别是:" . $p1->sex;
echo "p1对象的年龄是:" . $p1->age;

// 下面两行访问$p1对象中的方法
$p1->say();
$p1->run();

// 下面三行是给$p2对象属性赋值
$p2->name = "李四";
$p2->sex = "女";
$p2->age = 30;

// 下面三行是访问$p2对象的属性
echo "p2对象的名子是:" . $p2->name;
echo "p2对象的性别是:" . $p2->sex;
echo "p2对象的年龄是:" . $p2->age;

// 下面两行访问$p2对象中的方法
$p2->say();
$p2->run();

// 下面三行是给$p3对象属性赋值
$p3->name="王五";
$p3->sex="男";
$p3->age=40;

// 下面三行是访问$p3对象的属性
echo "p3对象的名子是:" . $p3->name;
echo "p3对象的性别是:" . $p3->sex;
echo "p3对象的年龄是:" . $p3->age;

// 下面两行访问$p3对象中的方法
$p3->say();
$p3->run();
?>
登录后复制

  此时类我们已经基本可以使用了 但是我们发现还是有点不足 就是我们可以在外部进行访问,但是不能在内部进行访问 我们引进一个概念“this”的用法 如果可以对内部进行访问赋值 那么将减少我们的代码量

  

<?php
class Person
{
	// 下面是人的成员属性
	var $name; //人的名子
	var $sex; //人的性别
	var $age; //人的年龄

	// 下面是人的成员方法
	function say() // 这个人可以说话的方法
	{
		echo "我的名子叫:" . $this->name . " 性别:" . $this->sex . " 我的年龄是:" . $this->age;
	}

	function run() // 这个人可以走路的方法
	{
		echo "这个人在走路";
	}
}

$p1 = new Person(); // 创建实例对象$p1
$p2 = new Person(); // 创建实例对象$p2
$p3 = new Person(); // 创建实例对象$p3

// 下面三行是给$p1对象属性赋值
$p1->name = "张三";
$p1->sex = "男";
$p1->age = 20;

// 下面访问$p1对象中的说话方法
$p1->say();

// 下面三行是给$p2对象属性赋值
$p2->name = "李四";
$p2->sex = "女";
$p2->age = 30;

// 下面访问$p2对象中的说话方法
$p2->say();

// 下面三行是给$p3对象属性赋值
$p3->name = "王五";
$p3->sex = "男";
$p3->age = 40;

// 下面访问$p3对象中的说话方法
$p3->say();
?>
登录后复制

  分析一下

function say() // 这个人可以说话的方法 
{
	echo "我的名子叫:" . $this->name . " 性别:" . $this->sex . " 我的年龄是:" . $this->age;
}
登录后复制

  上面代码中$this指的是对其进行赋值的对象。

构造方法__construct()与析构方法__destruct()

构造方法__construct():即自动使用new的方法实现对象的实例化(可以理解为为实现能在实例化对象的时候传入参数构建一道桥梁)。理解为一个队列

  

<?
// 创建一个人类
class Person
{
	// 下面是人的成员属性
	var $name;	// 人的名子
	var $sex;	// 人的性别
	var $age;	// 人的年龄

	// 定义一个构造方法参数为姓名$name、性别$sex和年龄$age
	function __construct($name, $sex, $age)
	{
		// 通过构造方法传进来的$name给成员属性$this->name赋初使值
		$this->name = $name;

		// 通过构造方法传进来的$sex给成员属性$this->sex赋初使值
		$this->sex = $sex;

		// 通过构造方法传进来的$age给成员属性$this->age赋初使值
		$this->age = $age;
	}

	// 这个人的说话方法
	function say()
	{
		echo "我的名子叫:" . $this->name . " 性别:" . $this->sex . " 我的年龄是:" . $this->age;
	}
}

// 通过构造方法创建3个对象$p1、p2、$p3,分别传入三个不同的实参为姓名、性别和年龄
$p1 = new Person("张三","男", 20);
$p2 = new Person("李四","女", 30);
$p3 = new Person("王五","男", 40);

// 下面访问$p1对象中的说话方法
$p1->say();

// 下面访问$p2对象中的说话方法
$p2->say();

// 下面访问$p3对象中的说话方法
$p3->say();
?>
登录后复制

 

输出结果为:

我的名子叫:张三 性别:男 我的年龄是:20我的名子叫:李四 性别:女 我的年龄是:30我的名子叫:王五 性别:男 我的年龄是:40
登录后复制

 

析构方法__destruct():析构函数允许在销毁一个类之前进行一些列的操作 一个类的析构函数必须是__destruct() 注意的是析构函数不能附带任何的参数 理解为一个栈

  

<?
// 创建一个人类
class Person
{
	// 下面是人的成员属性
	var $name;	// 人的名子
	var $sex;	// 人的性别
	var $age;	// 人的年龄

	// 定义一个构造方法参数为姓名$name、性别$sex和年龄$age
	function __construct($name, $sex, $age) 
	{
		// 通过构造方法传进来的$name给成员属性$this->name赋初使值
		$this->name = $name;
		
		// 通过构造方法传进来的$sex给成员属性$this->sex赋初使值
		$this->sex = $sex;
		
		// 通过构造方法传进来的$age给成员属性$this->age赋初使值
		$this->age = $age;
	}

	// 这个人的说话方法
	function say() 
	{
		echo "我的名子叫:" . $this->name . " 性别:" . $this->sex . " 我的年龄是:" . $this->age;
	}

	// 这是一个析构函数,在对象销毁前调用
	function __destruct() 
	{
		echo "再见" . $this->name;
	}
}

// 通过构造方法创建3个对象$p1、p2、$p3,分别传入三个不同的实参为姓名、性别和年龄
$p1 = new Person("张三", "男", 20);
$p2 = new Person("李四", "女", 30);
$p3 = new Person("王五", "男", 40);

// 下面访问$p1对象中的说话方法
$p1->say();

// 下面访问$p2对象中的说话方法
$p2->say();

// 下面访问$p3对象中的说话方法
$p3->say();
?>
登录后复制

  

输出结果为:

我的名子叫:张三 性别:男 我的年龄是:20我的名子叫:李四 性别:女 我的年龄是:30我的名子叫:王五 性别:男 我的年龄是:40<br />再见王五<br />再见李四<br />再见张三
登录后复制

 

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP MVC 架构:构建面向未来的 Web 应用程序 PHP MVC 架构:构建面向未来的 Web 应用程序 Mar 03, 2024 am 09:01 AM

引言在当今快速发展的数字世界中,构建健壮、灵活且可维护的WEB应用程序至关重要。PHPmvc架构提供了实现这一目标的理想解决方案。MVC(模型-视图-控制器)是一种广泛使用的设计模式,可以将应用程序的各个方面分离为独立的组件。MVC架构的基础MVC架构的核心原理是分离关注点:模型:封装应用程序的数据和业务逻辑。视图:负责呈现数据并处理用户交互。控制器:协调模型和视图之间的交互,管理用户请求和业务逻辑。PHPMVC架构phpMVC架构遵循传统MVC模式,但也引入了语言特定的功能。以下是PHPMVC

'PHP 面向对象编程设计模式:理解 SOLID 原则及其应用” 'PHP 面向对象编程设计模式:理解 SOLID 原则及其应用” Feb 25, 2024 pm 09:20 PM

SOLID原则是面向对象编程设计模式中的一组指导原则,旨在提高软件设计的质量和可维护性。由罗伯特·马丁(RobertC.Martin)提出,SOLID原则包括:单一职责原则(SingleResponsibilityPrinciple,SRP):一个类应该只负责一项任务,并且这个任务应该被封装在类中。这样可以提高类的可维护性和可复用性。classUser{private$id;private$name;private$email;publicfunction__construct($id,$nam

golang函数在面向对象编程中高并发场景下的应用 golang函数在面向对象编程中高并发场景下的应用 Apr 30, 2024 pm 01:33 PM

在面向对象编程的高并发场景中,函数在Go语言中具有广泛应用:函数作为方法:函数可附加到结构体,实现面向对象编程,方便操作结构体数据和提供特定功能。函数作为并发执行体:函数可作为goroutine的执行体,实现并发任务执行,提升程序效率。函数作为回调:函数可作为参数传递给其他函数,在特定事件或操作发生时被调用,提供灵活的回调机制。

PHP扩展开发:如何设计自定义函数以支持面向对象编程? PHP扩展开发:如何设计自定义函数以支持面向对象编程? Jun 01, 2024 pm 03:40 PM

PHP扩展可以支持面向对象编程,通过设计自定义函数来创建对象、访问属性和调用方法。首先创建自定义函数实例化对象,然后定义获取属性和调用方法的函数。实战中,我们可以自定义函数来创建一个MyClass对象,获取其my_property属性,并调用其my_method方法。

PHP的面向对象编程范式为项目管理和组织提供优势 PHP的面向对象编程范式为项目管理和组织提供优势 Sep 08, 2023 am 08:15 AM

PHP的面向对象编程范式为项目管理和组织提供优势随着互联网的飞速发展,各种规模的网站和应用程序如雨后春笋般涌现出来。为了满足日益增长的需求,并提高开发效率和可维护性,采用面向对象编程(Object-OrientedProgramming,简称OOP)的方法成为了现代软件开发的主流。在PHP这样的动态脚本语言中,OOP为项目管理和组织带来了许多优势,本文将介

'PHP面向对象编程入门:从概念到实践” 'PHP面向对象编程入门:从概念到实践” Feb 25, 2024 pm 09:04 PM

什么是面向对象编程?面向对象编程(OOP)是一种编程范式,它将现实世界中的实体抽象为类,并使用对象来表示这些实体。类定义了对象的属性和行为,而对象则实例化了类。OOP的主要优点在于它可以使代码更易于理解、维护和重用。OOP的基本概念OOP的主要概念包括类、对象、属性和方法。类是对象的蓝图,它定义了对象的属性和行为。对象是类的实例,它具有类的所有属性和行为。属性是对象的特征,它可以存储数据。方法是对象的函数,它可以对对象的数据进行操作。OOP的优点OOP的主要优点包括:可重用性:OOP可以使代码更

Python 入门到精通:从零基础到项目开发 Python 入门到精通:从零基础到项目开发 Feb 20, 2024 am 11:42 AM

1.Python简介python是一种简单易学、功能强大的通用编程语言,由GuidovanRossum于1991年创建。Python的设计理念是强调代码的可读性,并为开发人员提供丰富的库和工具,以帮助他们快速、高效地构建各种应用程序。2.Python基础语法Python的基础语法与其他编程语言类似,包括变量、数据类型、运算符、控制流语句等。变量用于存储数据,数据类型定义了变量可以存储的数据类型,运算符用于对数据进行各种操作,控制流语句用于控制程序的执行流程。3.Python数据类型Python中

C++ 函数与面向对象编程有何不同? C++ 函数与面向对象编程有何不同? Apr 11, 2024 pm 09:12 PM

函数和面向对象编程(OOP)在C++中提供了不同的编程机制:函数:独立的代码块,关注执行特定任务,不包含数据。OOP:基于对象、类和继承,将数据和行为封装在对象中。实战案例中,计算正方形面积的函数方式简单直接,而OOP方式封装了数据和行为,更适合管理对象交互。选择合适的方法取决于场景:函数适用于独立任务,OOP适合管理复杂对象交互。

See all articles