细说php(七) 面向对象编程
一、类的声明与对象初始化
1.1 在类中声明成员属性时: 前面必须有修饰词, 当不知道使用那个时, 就使用var, 如果知道使用那一个修饰关键字, 就不使用var了
var $color;
var $name = "zhangsan"
1.2 一个文件只保存一个类, 文件名中包含类名, 如:类名.class.php
person.class.php
1.3 使用new关键字来创建对象, 创建了一个对象就在内存中分配一个空间 $对象引用 = new 类名;
$person = new Person
<?php class Person { var $name; // Java: private String name; var $age; var $sex; function say() { echo $this->name; } } $p1 = new Person; // Java: Person person = new Person; $p1->name = "lisi"; // Java: person.name = "lisi"; $p1->say(); // Java: person.say(); ?>1.4 对象在内存中的分配
a. 栈内存: 存放局部变量
b. 堆内存: 存放对象
c. 共享区: 存放静态变量
d. 代码段: 存放方法等
二、构造函数和析构函数
2.1 构造函数:
a. 构造方法是对象创建完成之后, 第一个自动调用的方法
b. 在PHP4中, 和类同名的方法就是构造方法
c. 在PHP5中, 构造方法选择使用魔术方法 __construct() , 所有类中声明构造方法都使用这个名称
优点: 在改变类名时构造方法不用改变
d. 构造方法的作用: 为成员属性初始化
<?php class Person { var $name; var $age; var $sex; function __construct($name="", $age=0, $sex="男"){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function say(){ echo "我的名子:{$this->name},我的年龄:{$this->age},我的性别:{$this->sex}。<br>"; } } $p1=new Person("zhangsan", 20, "女"); $p2=new Person("lisi", 25); $p3=new Person("wangwu"); $p1->say(); $p2->say(); $p3->say(); ?>
2.2 析构函数:
a. 析构函数是指当对象被释放之前最后一个自动调用的方法
b. 和Java一样, PHP也使用垃圾回收器释放资源, 只不过PHP调用后马上回收, 而Java不是.
c. 析构函数的作用: 关闭一些资源, 做一些清理工作, 使用魔术方法 __destruct()
<?php class Person { var $name; var $age; var $sex; function __construct($name="", $age=0, $sex="男"){ $this->name=$name; $this->age=$age; $this->sex=$sex; } function say(){ echo "我的名子:{$this->name},我的年龄:{$this->age},我的性别:{$this->sex}。<br>"; } function __destruct(){ echo $this->name."再见!<br>"; } } $p1=new Person("zhangsan", 20, "女"); $p1->say(); $p1 = null; // 我的名子:zhangsan,我的年龄:20,我的性别:女。 // zhangsan再见! ?>
魔术方法是系统给我们提供好的, 在不同时刻为完成某一功能而自动调用的方法, 不同的魔术方法有不同的调用时机
魔术方法以 __ 开头
__construct(); // 构造函数
__destruct(); // 析构函数
__set();
__get();
__isset();
__unset();
__clone();
__call();
__sleep();
__weakup();
__toString()
__autoload();

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)