- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章php面向对象程序设计入门教程由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文实例讲述了php面向对象程序设计。分享给大家供大家参考,具体如下:
1.面向对象与面向过程的对比 。
面向过程:以事件为中心,分几个步骤去完成。不可扩展,html与php不分离 。
面向对象:自己作为指挥者,指挥别人去做。具有可扩展性,html和php代码分离 。
2.什么是对象?
对象:自然间形形色色存在的可以看得见的东西(其实这个也不会很准确),[在代码中表现为]由代码执行出来的效果 。
3.什么是面向对象?
OOP(面向对象编程)是Object-oriented programming的缩写,具有灵活性,可维护性,能为程序员开启一扇大门 。
软件工程的三个目标:1.重用性 2.灵活性 3.可扩展性 。
面向对象编程的特点:①封装 ②继承 ③多态 。
4.什么是类?
具有属性和方法对象的抽象的描述 。
5.类的定义 。
定义角度
静态描述: 就是我们熟悉的变量 。
动态描述(对象的功能):把动态描述写成函数,在对象中声明的函数叫做方法 。
所有的类都是从属性 和方法 两个方面去声明,属性和方法都是类中的成员,属性我们又叫做对象的成员属性,方法又叫做对象的成员方法. 。
成员属性:在类中直接声明的变量. 可以使用PHP中的标量类型和复合类型,所以也可以是其他类实例化的对象,在类中使用资源和空类型(null)没有意义. 。
关于成员属性的初始值一般情况是不赋的,大多情况都是在实例化对象后再给相应的成员属性赋上初始值. 。
成员方法:在对象中声明的函数叫做方法.
上述的成员属性和成员方法和面向过程中的声明变量与函数一样,只不过多了一些关键字 public protected private等. 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
class
Classname{
//成员属性
public
$name
;
public
$age
;
//成员方法
public
function
__construct(
$name
,
$age
){
//方法体
$this
->name=
$name
;
$this
->age=
$age
;
}
public
function
method(){
//方法体
//return 返回值
}
|
6.类和对象的关系 。
类的实例化就是对象. 。
1
2
|
//实例化
$mod
=
new
Classname();
|
"$变量名"是通过类创建一个对象的引用名称,后面通过这个引用来访问对象中的成员 "new"表示要创建一个新的对象 "类名称"表示新对象的类型 "参数"指定了类的构造方法用于初始化对象的值 如果类中没有定义构造方法,PHP会自动的创建一个不带参数的默认的构造方法. 一个类可以实例化对个对象,每个对象彼此独立,互不影响,属性和方法不会共享,(如同一张玻璃杯设计图,可以按照这个图制造成千上万的玻璃杯,但是一个玻璃杯被打碎的时候,其他的可没有被打碎),也就是它们同属一个玻璃杯类. 。
7.对象中成员的访问 。
对象中成员的访问就两个 成员属性 成员方法 。
对于成员属性也就两个操作:1:赋值操作 2.获取成员属性值的操作 。
1
2
3
4
|
$引用名
new
类名称([参数列表]);
//对象实例化
$引用名->成员属性=值;
//给成员属性赋值
echo
$引用名->成员属性;
//获取成员属性的值
$引用名->成员方法;
//访问成员方法
|
如果对象的成员不是静态的static,那么唯一的访问形式就是"对象引用名->属性"(没有$符号),和"对象引用名->方法名()". 。
8.特殊的对象引用"$this" 。
在对象的外部我门可以实例化对象,用对象的引用来访问对象的成员.但是在对象的内部要访问对象的成员时,怎么办?难道要在内部实例化,答案是否定的.这里要引入一个特殊的对象引用"$this". 。
this代表本对象,在对象内部的成员方法中访问成员要使用this代表本对象,在对象内部的成员方法中访问成员要使用this->属性 和 $this->方法.只能在成员方法中使用 。
9.构造方法和析构方法(魔术方法) 。
构造方法
①如果声明类的时候没有显示的声明它,类中都会默认存在一个没有参数列表并且内容为空的构造方法.如果显示的声明它,那么默认的构造方法将不会存在. 。
②当实例化一个对象时,会被自动调用一次,就是每使用new关键字实例化一个对象,就调用一次.不能主动的通过对象的引用去调用构造方法. 。
③通常用来对成员属性赋初始值. 。
④php5以前的版本必须要方法名和类名相同 。
⑤同一个类只能有一个构造方法 。
1
2
3
|
public
function
__construct(){
//主体
}
|
析构方法
①允许在小辉衣阁对象之前执行的一些特定操作(关闭文件,释放结果集) 。
②没有任何参数 。
当堆内存中的对象失去他的访问引用时,就会被认为是垃圾对象,并进行回收.而析构方法正是在垃圾回收程序回收对象前调用的. 。
1
2
3
|
public
function
__destruct(){
//方法体
}
|
希望本文所述对大家PHP程序设计有所帮助.
原文链接:https://www.cnblogs.com/bookfrank/p/6130638.html 。
最后此篇关于php面向对象程序设计入门教程的文章就讲到这里了,如果你想了解更多关于php面向对象程序设计入门教程的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我的一位教授给了我们一些考试练习题,其中一个问题类似于下面(伪代码): a.setColor(blue); b.setColor(red); a = b; b.setColor(purple); b
我似乎经常使用这个测试 if( object && object !== "null" && object !== "undefined" ){ doSomething(); } 在对象上,我
C# Object/object 是值类型还是引用类型? 我检查过它们可以保留引用,但是这个引用不能用于更改对象。 using System; class MyClass { public s
我在通过 AJAX 发送 json 时遇到问题。 var data = [{"name": "Will", "surname": "Smith", "age": "40"},{"name": "Wil
当我尝试访问我的 View 中的对象 {{result}} 时(我从 Express js 服务器发送该对象),它只显示 [object][object]有谁知道如何获取 JSON 格式的值吗? 这是
我有不同类型的数据(可能是字符串、整数......)。这是一个简单的例子: public static void main(String[] args) { before("one"); }
嗨,我是 json 和 javascript 的新手。 我在这个网站找到了使用json数据作为表格的方法。 我很好奇为什么当我尝试使用 json 数据作为表时,我得到 [Object,Object]
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我听别人说 null == object 比 object == null check 例如: void m1(Object obj ) { if(null == obj) // Is thi
Match 对象 提供了对正则表达式匹配的只读属性的访问。 说明 Match 对象只能通过 RegExp 对象的 Execute 方法来创建,该方法实际上返回了 Match 对象的集合。所有的
Class 对象 使用 Class 语句创建的对象。提供了对类的各种事件的访问。 说明 不允许显式地将一个变量声明为 Class 类型。在 VBScript 的上下文中,“类对象”一词指的是用
Folder 对象 提供对文件夹所有属性的访问。 说明 以下代码举例说明如何获得 Folder 对象并查看它的属性: Function ShowDateCreated(f
File 对象 提供对文件的所有属性的访问。 说明 以下代码举例说明如何获得一个 File 对象并查看它的属性: Function ShowDateCreated(fil
Drive 对象 提供对磁盘驱动器或网络共享的属性的访问。 说明 以下代码举例说明如何使用 Drive 对象访问驱动器的属性: Function ShowFreeSpac
FileSystemObject 对象 提供对计算机文件系统的访问。 说明 以下代码举例说明如何使用 FileSystemObject 对象返回一个 TextStream 对象,此对象可以被读
我是 javascript OOP 的新手,我认为这是一个相对基本的问题,但我无法通过搜索网络找到任何帮助。我是否遗漏了什么,或者我只是以错误的方式解决了这个问题? 这是我的示例代码: functio
我可以很容易地创造出很多不同的对象。例如像这样: var myObject = { myFunction: function () { return ""; } };
function Person(fname, lname) { this.fname = fname, this.lname = lname, this.getName = function()
任何人都可以向我解释为什么下面的代码给出 (object, Object) 吗? (console.log(dope) 给出了它应该的内容,但在 JSON.stringify 和 JSON.parse
我正在尝试完成散点图 exercise来自免费代码营。然而,我现在只自己学习了 d3 几个小时,在遵循 lynda.com 的教程后,我一直在尝试确定如何在工具提示中显示特定数据。 This code
我是一名优秀的程序员,十分优秀!