0

0

PHP之封装概念详解

小云云

小云云

发布时间:2018-03-31 11:26:47

|

5156人浏览过

|

来源于php中文网

原创

本文主要和大家分享PHP之封装概念详解,主要以文字和代码的形式和大家分享,希望能帮助到大家。

/* 面向对象三大特征: 封装 继承 多态 */

// ===代码部分1===

class Human {
    public $money = 1000;
}$lisi = new Human();echo $lisi->money,'
'; //1000// 改变一下money$lisi->money = 500;echo $lisi->money,'
'; //500
/* 然而在现实中,别人把你的钱减少了,显然是不合理的 所以我们要把钱设为私有的 */

// ===代码部分2===

class Human {
    private $money = 1000;    public function showMoney() {
        return $this->money * 0.8;
    }
}$lisi = new Human();/*
此时我们再调用或调用更改money时就会失败,
因为我们把money“封起来”了
//echo $lisi->money,'
'; //1000 但是,我们不能光封起来,还要能够使用才行 *//* 我们不能直接翻别人口袋有多少钱 但可以问别人,但是别人说的不一定是真的 */echo $lisi->showMoney(); //800
/* 把某些重要属性 封装起来 然后通过一个开放的接口来操作. 这就实现对属性的封装. */

// ===代码部分3===

android中音频视频开发教程 中文WORD版
android中音频视频开发教程 中文WORD版

媒体包提供了可管理各种媒体类型的类。这些类可提供用于执行音频和视频操作。除了基本操作之外,还可提供铃声管理、脸部识别以及音频路由控制。本文说明了音频和视频操作。 本文旨在针对希望简单了解Android编程的初学者而设计。本文将指导你逐步开发使用媒体(音频和视频)的应用程序。本文假定你已安装了可开发应用程序的Android和必要的工具,同时还假定你已熟悉Java或掌握面向对象的编程概念。感兴趣的朋友可以过来看看

下载
// 封装在方法上的体现class Human {
    private $money = 1000;    private $bank = 2000;    private function getBank($num) {
        $this->bank -= $num;        return $num;
    }    public function send($much) {
        if($much <= 1000) {            $this->money -= $much;            return $much;
        } else if($much <= $this->money + $this->bank) {            $num = $much - $this->money; 
            //计算从银行取了多少钱
            $this->money += $this->getBank($num);            //从银行取出钱,加到现金里

            $this->money -= $much;            //再把钱借给朋友
            return $much;
        } else { 
            $this->money -= $much;            return $much;      
        //最后若实在借不了这么多的话返回false
            //return false;
        }
    }    public function showMoney() {
        return $this->money;
    }    public function showBank() {
        return $this->bank;
    }
}$lisi = new Human();$m = $lisi->send(300);if($m) {    echo '借了',$m,'元
'; echo '还剩下',$lisi->showMoney(),'元
'; }// 再借2000元$m = $lisi->send(2000);if($m) { echo '借了',$m,'元
'; echo '还剩下',$lisi->showMoney(),'元
'; echo '银行还有',$lisi->showBank(),'元
'; }
/* 对于一个对象,对外界开放一个接口, 调用接口时,内部进行的操作,不需要让外界知道. 隐藏了内部的一些实现细节.
这是对方法的封装. */
/* 面向对象三大特征: 封装 继承 多态 */

// ===代码部分1===

class Human {
    public $money = 1000;
}$lisi = new Human();echo $lisi->money,'
'; //1000// 改变一下money$lisi->money = 500;echo $lisi->money,'
'; //500
/* 
然而在现实中,别人把你的钱减少了,显然是不合理的 
所以我们要把钱设为私有的 
*/



// ===代码部分2===

立即学习PHP免费学习笔记(深入)”;

class Human {
    private $money = 1000;    public function showMoney() {
        return $this->money * 0.8;
    }
}$lisi = new Human();/*
此时我们再调用或调用更改money时就会失败,
因为我们把money“封起来”了
//echo $lisi->money,'
'; //1000 但是,我们不能光封起来,还要能够使用才行 *//* 我们不能直接翻别人口袋有多少钱 但可以问别人,但是别人说的不一定是真的 */echo $lisi->showMoney(); //800
/* 把某些重要属性 封装起来 然后通过一个开放的接口来操作. 这就实现对属性的封装. */

// ===代码部分3===

// 封装在方法上的体现class Human {
    private $money = 1000;    private $bank = 2000;    private function getBank($num) {
        $this->bank -= $num;        return $num;
    }    public function send($much) {
        if($much <= 1000) {            $this->money -= $much;            return $much;
        } else if($much <= $this->money + $this->bank) {            $num = $much - $this->money; 
            //计算从银行取了多少钱
            $this->money += $this->getBank($num);            //从银行取出钱,加到现金里

            $this->money -= $much;            //再把钱借给朋友
            return $much;
        } else { 
            $this->money -= $much;            return $much;      
        //最后若实在借不了这么多的话返回false
            //return false;
        }
    }    public function showMoney() {
        return $this->money;
    }    public function showBank() {
        return $this->bank;
    }
}$lisi = new Human();$m = $lisi->send(300);if($m) {    echo '借了',$m,'元
'; echo '还剩下',$lisi->showMoney(),'元
'; }// 再借2000元$m = $lisi->send(2000);if($m) { echo '借了',$m,'元
'; echo '还剩下',$lisi->showMoney(),'元
'; echo '银行还有',$lisi->showBank(),'元
'; }
/* 对于一个对象,对外界开放一个接口, 调用接口时,内部进行的操作,不需要让外界知道. 隐藏了内部的一些实现细节.
这是对方法的封装. */

相关推荐:

php面向对象之继承、多态、封装简介

php的错误处理封装类详解

PHP通信数据封装类的实现代码分享

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

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

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 面向对象
go语言 面向对象

本专题整合了go语言面向对象相关内容,阅读专题下面的文章了解更多详细内容。

56

2025.09.05

java面向对象
java面向对象

本专题整合了java面向对象相关内容,阅读专题下面的文章了解更多详细内容。

52

2025.11.27

java多态详细介绍
java多态详细介绍

本专题整合了java多态相关内容,阅读专题下面的文章了解更多详细内容。

15

2025.11.27

go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

30

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

17

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

16

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

5

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

5

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

253

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 10.7万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号