php学习八:封装
一:在php中,用class关键字来创建一个类,即进行封装;在类里面有成员属性和方法行为组成:
1.成员属性:用关键字var来声明,可以给初始值也可以不给;现在var废弃,用public来声明,public为共有属性,在任何地方都可以访问
/*名称*/
public $name = "房明";
/*学号*/
public $no;
/*成绩*/
public $score;
2.行为方法:和js中的函数类似,一般用public来声明
/*唱歌*/
public function sing($songName)
{
echo "学生会唱{$songName}歌";
} /*跑步*/
public function run()
{
return "学生去跑步了";
}
特别注意:在类里面调用自己的属性和方法的时候,用到"$this->..."
public function showSelf(){
echo "我叫{$this->name},我的学号是{$this->no},我考了{$this->score}分,{$this->run()}";
}
二:new关键字实例化对象
要想操作类里面的属性和方法,必须要实例化一个对象;
每一个对象都是独立的,通过对象改变属性只能改变自己内存空间的数据,互不影响;
通过"->"来访问类里面的属性和方法,类似于c中的指针,通过"="进行赋值;
$student1 = new Student1(); //创建内存空间,然后把地址传递给对象
$student1->name = "张三"; //通过"->"来访问类里面的属性和方法,类似于c中的指针,通过"="进行赋值
$student1->no = "1001";
$student1->score = "100";
$student1->showSelf();
三:引用外部类:
引用外部类:include,required;前者在错误时会出现一个警告,后者会出现一个致命的错误
在不确定外部类是不是用了一次的情况下,为了避免出现冲突,可以用include_once或者required_once
代码:我单独建了一个Student类,页面代码如下:
class Student
{
public $name;
public $age;
}
然后我想在main页面用这个类,那么在main页面需要的代码如下:
include_once "Student.class.php";
$student = new Student();
四:构造函数和解析函数
构造函数:__construct()初始化参数,当实例化类的时候会调用这个函数,属于魔术方法,前面是两个下划线;
析构函数:__destruct(),当内存被回收的时候调用这个函数;
代码:
class Student
{
public $name;
public $age;
/*************构造函数:__construct()初始化参数******************/
public function __construct($name,$age){
$this->name = $name;
$this->age = $age;
}
public function show(){
echo $this->name."今年".$this->age."岁了";
} /************析构函数:******************/
public function __destruct()
{
echo $this->name."内存被回收";
}
}
$student = new Student("房明","18");
$student->show(); //此时打印的结果为:房明今年18岁了
php学习八:封装的更多相关文章
- Python Tutorial 学习(八)--Errors and Exceptions
Python Tutorial 学习(八)--Errors and Exceptions恢复 Errors and Exceptions 错误与异常 此前,我们还没有开始着眼于错误信息.不过如果你是一 ...
- SVG 学习<八> SVG的路径——path(2)贝塞尔曲线命令、光滑贝塞尔曲线命令
目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...
- Canvas学习:封装Canvas绘制基本图形API
Canvas学习:封装Canvas绘制基本图形API Canvas Canvas学习 从前面的文章中我们了解到,通过Canvas中的CanvasRenderingContext2D对象中的属性和方 ...
- C#学习笔记-封装
前言 说起来惭愧,学了大半年的C#,其实最开始就接触到了封装的部分,但是一直模模糊糊的弄不清楚,也觉得没什么影响就没怎么在意,现在才开始认真的看这部分内容,看懂了过后好多东西清晰了不少,才发现封装这个 ...
- Java编程思想学习(八) 内部类
可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类的定义是简单的,但是它的语法确实很是复杂,让人不是很好理解.下面就内部类做一个小结. 一.内部类的分类 总的来讲内部类分为普通内部类,匿 ...
- boost asio 学习(八) 网络基础 二进制写发送和接收
http://www.gamedev.net/blog/950/entry-2249317-a-guide-to-getting- started-with-boostasio?pg=9 8. Net ...
- MVC学习八:MVC View提交数据
学习编程最主要的就是数据交互,MVC中数据交互是怎么样的呢? 1.Controller向View传输数据在http://www.cnblogs.com/WarBlog/p/7127574.html中有 ...
- 侯捷STL学习(八)-- 深度探索deque
layout: post title: 侯捷STL学习(八) date: 2017-07-19 tag: 侯捷STL --- 第十八节 深度探索deque上 duque内存结构 分段连续,用户看起来是 ...
- 【C语言学习】封装和模块化思想
刚学习完C后,做的关于C的课程设计是在一个源文件里放了几百行代码,并且各个功能之间都是相互依赖的,这样就会非常麻烦. 由于当我要改动某个地方的时候,就会牵连着要改动喝多的地方.而在实际的程序设计中.这 ...
随机推荐
- 基于CSS3自定义美化复选框Checkbox组合
今天我们要来分享一组非常漂亮的CSS3自定义复选框checkbox,每一个checkbox都有其各自的特点.有几款checkbox在选中的情况下还会出现动画效果,非常不错的CSS3自定义美化check ...
- css让footer永远保持在页面底部
案例1:仅仅保存在页面底部.不固定. 思路: html: <div class="body"> <header>我是头部</header> &l ...
- Spring事件监听Demo
Spring事件监听实现了观察者模式.本Demo在junit4测试环境中实现 主要有三个类事件类.监听器类.事件发布类(入口) 事件类必须继承 ApplicationEvent,代码如下: impor ...
- eclipse安装中文补丁包
第一步:打开http://www.eclipse.org/babel/ 第二步:找到downloads. 第三步:点击Oxygen. 第四步:找到简体中文的zip插件并兵下载. 第五步:解压. 第六步 ...
- iOS边练边学--(Quartz2D)基本图形的绘制#附加自定义进度控件的练习
一.Quartz2D使用须知 Quartz2D的API是纯C语言的 Quartz2D的API来自于Core Graphics框架 二.<1>通过原始的方法(C语言)绘制简单图形--了解 & ...
- iOS边练边学--UITableViewCell的常见属性设置
// 取消选中的样式(常用) 让当前 cell 按下无反应 cell.selectionStyle = UITableViewCellSelectionStyleNone; // 设置选中的背景色,U ...
- 如今在 Internet 上流传的“真正”的程序员据说是这样的
如今在 Internet 上流传的“真正”的程序员据说是这样的: (1) 真正的程序员没有进度表,只有讨好领导的马屁精才有进度表,真正的程序员会让 领导提心吊胆. (2) 真正的程序员不写使用说明书, ...
- 在系统中使用read函数读取文件内容
read函数(读取文件) read函数可以读取文件.读取文件指从某一个已打开地文件中,读取一定数量地字符,然后将这些读取的字符放入某一个预存的缓冲区内,供以后使用. 使用格式如下: number = ...
- nodejs基础 -- 模块系统
为了让nodejs的文件可以相互调用,nodejs提供了一个简单的模块系统. 模块:是nodejs应用程序的基本组成部分,文件和模块一一对应.即,一个nodejs文件就是一个模块,这个文件可能是jav ...
- java面试题------40个Java集合面试问题和答案
Java集合框架为Java编程语言的基础,也是Java面试中非常重要的一个知识点. 这里,我列出了一些关于Java集合的重要问题和答案. 1.Java集合框架是什么?说出一些集合框架的长处? 每种编程 ...